?

Dec 27 2016

python之提速千倍爆破一句話

首頁 » 滲透測試 » python之提速千倍爆破一句話   

 

  ABOUT

  

  最初思路源于T00ls版主接地氣,一個低調、熱心的安全研究者。向技術研究者和分享者致敬!!!

  文章目錄

  原理解讀

  開始實現

  實戰測試

  原理解讀

  本來@接地氣大牛已經寫出了C#版本的工具了,那天在群里王子表哥突然那么一問,于是我就寫了這篇詳細的過程。

  一般來說,一句話木馬腳本的樣本如下:

  PHP:<?php @eval($_POST['v5est0r']);?>

  ASP:<%eval request("v5est0r")%>

  一般來說,一句話木馬通過POST方式的傳參方式如下(以寫出字符的語句為例):

  PHP:v5est0r=echo "password is v5est0r";

  ASP:v5est0r=response.write("password:v5est0r")

  如下,我們這里準備了一個PHP版本的一句話木馬,密碼是v5est0r,POST的數據是v5est0r=echo "password is v5est0r";,變量提交能匹配上即執行echo語句,此為傳統的單數據提交模式:

  那么根據接地氣大哥的思路,一次提交多個變量數據呢?多個變量用&連接符連接起來。無論是提交一個變量還是多個變量,服務器都是判斷一次,只要提交內容中存在正確的變量就執行echo語句,于是乎,一次提交多個變量就大大增加了破解效率。

  v5est0r=echo "password is v5est0r";&123=echo "password is 123";&admin=echo "password is admin";&1=echo "password is 1";&pass=echo "password is pass";&test=echo "password is test";

  Apache一次允許同時提交1000個參數, IIS允許一次提交5883個參數。

  開始實現

  那么,在python中如何實現呢?

  下圖是我們在python命令行下使用requests庫測試提交,很方便:

  

  

  思路有了,開始一點一點在代碼中實現,下面的代碼體現了:

  1. 判斷該變量是是否與一句話木馬變量匹配

  2. 嘗試多變量提交數據

  3. 清空字典并嘗試向添加新的變量

  如是,很簡單的判斷出了一句話木馬的變量是`v5est0r`,當前的提交變量對應的數據是:

  {'test': 'echo "password is test";', 'v5est0r': 'echo "password is v5est0r";', '123': 'echo "password is 123";', 'hack': 'echo "password is hack";'}

  接下來要解決的問題就是從字典文件中讀取變量并合并寫入提交的數據組:

  我們在本目錄提供了字典文件`pass.txt`,內容如下:

  一開始我嘗試把字典通過`readlines`逐行讀取,并寫入一個元組中,但是有換行符`n`擾亂我們提取純凈的字典數據,為了解決或者這個問題我真是絞盡腦汁,我還是太笨了。。。,搞了兩個小時才解決,使用`strip`函數刪除無關數據,我還是不明白起初的思路利用`replace`函數替換為什么不可以:

  

  

  提交的數據是:

  {'v5est0r': 'echo "password is v5est0r";', '12': 'echo "password is 12";', 'Admin': 'echo "password is Admin";', '1': 'echo "password is 1";', '123': 'echo "password is 123";', 'Pass': 'echo "password is Pass";', 'Test': 'echo "password is Test";'}

  如此完美解決數據的拼接問題。

  我們上面說過,Apache一次允許同時提交1000個參數, IIS允許一次提交5883個參數。我們這里就不做具體的區分了,同一把字典以1000為單位分組:

  經過如上分析,接下來就是分批提交了,這就很簡單了,初始DEMO如下:

  如上,代碼初步完成,我們先測試下效果:

  這里準備了一個字典,有68萬+的密碼變量,我們把正確的密碼放在最后一個:

  嘗試執行腳本,可以看到,python處理數據極快:

  但是,出現了問題,明明是存在密碼的,但是卻沒爆破出來。后來想了下,是因為密碼在最后一位,我們在以千為單位分割時漏掉了余數,于是如下添加以下代碼補齊余數:

  

  如此,軟件基本成型,我們還需加入ASP類型的腳本木馬爆破,直接替換提交的數據即可。

  為了方便我們的用戶使用,需要進行變量在命令行由客戶傳入,即實現自定義和批量等功能:

  客戶傳參使用ConfigParser模塊,完整代碼如下,加入了腳本類型的區分:

  這里是使用if語句判斷用戶傳入的是ASP還是PHP類型的一句話木馬。

  實戰測試

  腳本使用請如下填寫相關參數:

  python ShellBuster.py shell_url shell_type dic_dir//python ShellBuster.py 木馬地址 腳本類型 字典位置

  PHP腳本測試效果,30萬字典幾秒就跑完了:

  python ShellBuster.py http://192.168.1.103/hack.php php pass.txt

  ASP腳本測試效果,30萬字典幾秒就跑完了:

  python ShellBuster.py http://192.168.1.103:8080/hack.asp asp pass.txt

  ASP腳本可以改成5000個變量一組,那樣就更快了,估計1000萬的字典也跑不了幾秒。我下次寫個封裝函數出來再細分吧,先休息了。

  基本就是這樣,僅作方便使用,有問題大家可根據源碼修改。

  作者 Binghe

  來源:i春秋社區

  鏈接:http://bbs.ichunqiu.com/thread-16952-1-1.html

 

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽:這篇文章木有標簽

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «PHPMailer曝遠程代碼執行高危漏洞(CVE-2016-10033)含PoC | BurpSuite 實戰指南»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖