0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

完整記錄整個(gè)fuzz的過程,加深對(duì)web sql注入fuzz的理解

電子工程師 ? 來源:lq ? 2018-12-31 11:54 ? 次閱讀

前言

本文是在做ctf bugku的一道sql 盲注的題中運(yùn)用了fuzz的思路,完整記錄整個(gè)fuzz的過程,給師傅們當(dāng)點(diǎn)心,方便大家加深對(duì)web sql注入 fuzz的理解。

進(jìn)入主題

1、訪問題目,是個(gè)典型的登錄框

2、嘗試輸入admin/123456,提示密碼錯(cuò)誤,因此可以確定存在用戶admin,這里可能會(huì)有師傅要爆破了,但這里題目要求sql注入,我們就按照預(yù)期解來吧。

3、我自己寫了個(gè)簡單的fuzz burp插件,先將登陸請(qǐng)求包發(fā)送到插件掃描,可以看到是存在盲注的,payload的形式為:

4、fuzz

(1)從payload的形式可以猜測題目應(yīng)該是過濾了注釋符(--+和#)

(2)fuzz一遍特殊字符,看看過濾了什么

當(dāng)存在過濾的字符時(shí),響應(yīng)包是這樣的

因此可以作為fuzz的判斷(當(dāng)然有些waf是靜默waf,就是照樣接收你的數(shù)據(jù)但自己做了處理,返回正常頁面,這種fuzz的判斷有時(shí)候就需要設(shè)計(jì)下你的payload,這種在以后的文章繼續(xù)討論)

fuzz特殊字符,結(jié)果如下,可以看到長度為370的是被wa了的,過濾了相當(dāng)多的字符,特別是內(nèi)聯(lián)注釋 注釋符 空格 %0a %0b %0d %a0這些比較常用的繞過關(guān)鍵組件,尤其注意過濾了逗號(hào)

(3)fuzz一遍關(guān)鍵字,過濾了and or order union for 等等,因此取數(shù)據(jù)常用的mid( xx from xx for xx)就不能用了,之前逗號(hào)也被過濾了也就不能用mid(xx,1,1)。

(4)fuzz函數(shù)名和操作符(由于插件的掃描結(jié)果沒有過濾sleep,直覺上是沒有對(duì)函數(shù)做過濾)

不出意外,確實(shí)是只有包含關(guān)鍵字or and等的函數(shù)被wa了,其他基本沒有,其實(shí)這里我們也可以聯(lián)想到跑表經(jīng)常要用的informationschema表是存在or關(guān)鍵字的,因此后面構(gòu)造語句的時(shí)候也就不能直接用informationschema

(5)嘗試用時(shí)間盲注跑數(shù)據(jù)

if(1=1,sleep(5),0)

由于不能用逗號(hào)需要變?yōu)?/p>

CASEWHEN(1=1)THEN(sleep(5))ELSE(2)END

但空格也被過濾了,需要用括號(hào)代替空格(/!/ 空格 tab %a0 %0d%0a均被過濾了)

(CASEWHEN(1=1)THEN(sleep(1))ELSE(1)END);

最后本地測試的時(shí)候發(fā)現(xiàn)case when之間不能用括號(hào),做一下字符fuzz,從%00到%ff

可以看到結(jié)果是確實(shí)不行,并不能產(chǎn)生延時(shí)(有的直接被wa,有的沒被wa但sql語句無法生效),因此基本可以確認(rèn)不能用時(shí)間盲注跑數(shù)據(jù),于是我們只能考慮布爾盲注

(6)嘗試布爾盲注

由于無法使用if或者case/when,只能使用題目自帶的bool盲注做邏輯判斷(=) 比如我們一開始就注意到存在admin用戶,改造插件的payload: '+sleep(5)+' (注意把+換為%2b)

admin'+1+'(false,注意把+換為%2b)admin'+0+'(true,注意把+換為%2b)

這里是mysql的一個(gè)特性,可能有不明白的師傅,可以做下實(shí)驗(yàn)

select*fromuserwherename='admin'+1+''andpasswd='123456';(為false)==>提示用戶名錯(cuò)誤select*fromuserwherename='admin'+0+''andpasswd='123456';(為true)==>提示密碼錯(cuò)誤

前者為1后者為0,先對(duì)右邊的等式做運(yùn)算,發(fā)生強(qiáng)制轉(zhuǎn)換,結(jié)果為數(shù)字,然后再和左邊的admin字符做比較,又發(fā)生了強(qiáng)制轉(zhuǎn)換,因此出現(xiàn)1和0的區(qū)別。

這樣子我們就解決了布爾盲注的判斷了

(7)解決下跑數(shù)據(jù)的問題

這里不能用mid(xxx,1,1)也不能用mid(xxx from 1 for 1),但查手冊(cè)發(fā)現(xiàn)可以使用mid(xxx from 1),表示從第一位開始取剩下的所有字符,取ascii函數(shù)的時(shí)候會(huì)發(fā)生截?cái)?,因此利用ascii(mid(xxx from 1))可以取第一位的ascii碼,ascii(mid(xxx from 2))可以取第二位的ascii,依次類推

(8)burp跑數(shù)據(jù)

a.判斷passwd字段的長度: 跑出長度為32

(這里可以猜字段,根據(jù)post請(qǐng)求包中的passwd猜測數(shù)據(jù)庫的字段應(yīng)該也是passwd,這樣就可以不用去跑information_schema,直接在登陸查詢語句中獲取passwd)

admin'-(length(passwd)=48)-'

b.跑第一位

這里的payload我用的不是上面的,從最后面開始倒著取數(shù)據(jù)然后再reverse一下,那時(shí)候做題沒轉(zhuǎn)過彎,其實(shí)都一樣的,用下面的payload的好處是假如ascii不支持截?cái)嗟那闆r下是不會(huì)報(bào)錯(cuò)的(用于其他數(shù)據(jù)庫的時(shí)候)

=admin'-(ascii(mid(REVERSE(MID((passwd)from(-1)))from(-1)))=48)-'

用這一個(gè)也可以的

=admin'-(ascii(mid(passwd)from(1))=48)-'

重復(fù)上述操作修改偏移,即可獲取32位密碼 005b81fd960f61505237dbb7a3202910 解碼得到admin123,登陸即可獲取flag,到這里解題過程結(jié)束。

總結(jié)

1、上述用到的fuzz字典均可在sqlmap的字典以及mysql官方手冊(cè)中收集

2、這里僅僅是常規(guī)的fuzz,但大多數(shù)fuzz其實(shí)都是相通的,主要是fuzz的判斷,fuzz的位置,fuzz payload的構(gòu)造技巧等等

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6715

    瀏覽量

    88307
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    750

    瀏覽量

    43900
  • Fuzz
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7423

原文標(biāo)題:SQL 注入常規(guī) Fuzz 全記錄

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    sql注入原理及預(yù)防措施

    SQL注入就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。對(duì)于很多網(wǎng)站都有
    發(fā)表于 03-21 14:47

    基于Big Muff類的fuzz

    描述這是基于 Big Muff fuzz 類的 fuzz。Morbid Fur 移除了 Big Muff 的音調(diào)控制,并調(diào)整晶體管和二極管以獲得響亮而原始的音調(diào)。
    發(fā)表于 07-06 07:16

    ZVEX Masotron Fuzz的資料分享

    描述ZVEX Masotron Fuzz
    發(fā)表于 07-12 07:22

    Skreddy Fuzz Driver資料分享

    描述Skreddy Fuzz Driver
    發(fā)表于 08-11 06:00

    基本音頻Zippy Fuzz資料分享

    描述基本音頻Zippy Fuzz早期的 fuzz box 旨在模仿薩克斯管的聲音。Zippy 將允許您以非常蘆葦?shù)慕q毛音調(diào)引導(dǎo)您內(nèi)心的 Coltrane。薩克斯和性感。在較低的設(shè)置下,一個(gè)美妙的音樂
    發(fā)表于 08-12 07:47

    HUAWEI DevEco Testing注入攻擊測試:以攻為守,守護(hù)OpenHarmony終端安全

    對(duì)Fuzz測試的原理和測試執(zhí)行過程的介紹,讓你深入了解DevEco Testing注入攻擊測試的背后原理。二、Fuzz測試面對(duì)網(wǎng)絡(luò)黑客對(duì)漏洞的惡意攻擊,相較于被動(dòng)應(yīng)對(duì)外部的暴力破解,安
    發(fā)表于 09-15 10:31

    sql注入攻擊的基本原理解

    SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷,攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,
    發(fā)表于 11-17 15:14 ?1.5w次閱讀
    <b class='flag-5'>sql</b><b class='flag-5'>注入</b>攻擊的基本原<b class='flag-5'>理解</b>析

    Fuzz Face類型吉他效果電路-吉他法茲效果

    電子發(fā)燒友網(wǎng)站提供《Fuzz Face類型吉他效果電路-吉他法茲效果.zip》資料免費(fèi)下載
    發(fā)表于 07-05 10:14 ?6次下載
    <b class='flag-5'>Fuzz</b> Face類型吉他效果電路-吉他法茲效果

    圍繞CMOS反相器構(gòu)建的Big Muff fuzz

    電子發(fā)燒友網(wǎng)站提供《圍繞CMOS反相器構(gòu)建的Big Muff fuzz.zip》資料免費(fèi)下載
    發(fā)表于 07-06 11:16 ?2次下載
    圍繞CMOS反相器構(gòu)建的Big Muff <b class='flag-5'>fuzz</b>

    基于Big Muff fuzz類的fuzz

    電子發(fā)燒友網(wǎng)站提供《基于Big Muff fuzz類的fuzz.zip》資料免費(fèi)下載
    發(fā)表于 07-07 09:33 ?0次下載
    基于Big Muff <b class='flag-5'>fuzz</b>類的<b class='flag-5'>fuzz</b>

    Greeny(Fuzz Face OpAmp仿真器)開源

    電子發(fā)燒友網(wǎng)站提供《Greeny(Fuzz Face OpAmp仿真器)開源.zip》資料免費(fèi)下載
    發(fā)表于 07-27 15:36 ?4次下載
    Greeny(<b class='flag-5'>Fuzz</b> Face OpAmp仿真器)開源

    基本音頻Zippy Fuzz開源

    電子發(fā)燒友網(wǎng)站提供《基本音頻Zippy Fuzz開源.zip》資料免費(fèi)下載
    發(fā)表于 07-27 14:37 ?1次下載
    基本音頻Zippy <b class='flag-5'>Fuzz</b>開源

    重現(xiàn)傳奇的Dallas Arbiter Fuzz聲音的踏板

    電子發(fā)燒友網(wǎng)站提供《重現(xiàn)傳奇的Dallas Arbiter Fuzz聲音的踏板.zip》資料免費(fèi)下載
    發(fā)表于 07-27 11:20 ?1次下載
    重現(xiàn)傳奇的Dallas Arbiter <b class='flag-5'>Fuzz</b>聲音的踏板

    ZVEX Masotron Fuzz開源分享

    電子發(fā)燒友網(wǎng)站提供《ZVEX Masotron Fuzz開源分享.zip》資料免費(fèi)下載
    發(fā)表于 08-22 16:48 ?1次下載
    ZVEX Masotron <b class='flag-5'>Fuzz</b>開源分享

    sql注入漏洞解決方法有哪些?

    什么是sql注入?SQL注入(SQLi)是一種執(zhí)行惡意SQL語句的注入攻擊。攻擊者可能會(huì)利用
    的頭像 發(fā)表于 10-07 17:29 ?4509次閱讀
    <b class='flag-5'>sql</b><b class='flag-5'>注入</b>漏洞解決方法有哪些?