20200227 SQL注入及雜事

報(bào)錯(cuò)型注入

昨天學(xué)了基于時(shí)間型基于布爾型的盲注,今天整個(gè)報(bào)錯(cuò)型的注入

基本分為:

  1. 雙查詢注入

  2. 基于extractvalue/updatexml 的報(bào)錯(cuò)注入

雙查詢注入

核心函數(shù):
floor(rand(14)*2)

分析rand()與floor()在雙查詢中的作用

數(shù)據(jù)庫:
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | challenges         |
 | dvwa               |
 | mysql              |
 | performance_schema |
 | security           |
 | test               |
 +--------------------+
 ?
 mysql> select floor(rand(14)*2) from information_schema.schemata;
 +-------------------+
 | floor(rand(14)*2) |
 +-------------------+
 |                 1 |
 |                 0 |
 |                 1 |
 |                 0 |
 |                 0 |
 |                 0 |
 |                 1 |
 +-------------------+

1.floor(rand(14)*2)) ×2可以使范圍落在[0,1]內(nèi)织狐,rand(14)的前4位是1010更快報(bào)錯(cuò)
2.rand()函數(shù)執(zhí)行的次數(shù)取決于數(shù)據(jù)庫的多少筏勒,即from后面的目標(biāo)

基本的句式: 這里報(bào)出的是當(dāng)前數(shù)據(jù)庫

 mysql> select(concat((select database()),floor(rand(14)*2)))c,count(*) from information_schema.tables group by c;
 ERROR 1062 (23000): Duplicate entry 'security0' for key 'group_key'

關(guān)于floor(rand()*2)的深究

基本原理是是在計(jì)數(shù)時(shí)count(*),臨時(shí)生成了一張key-tally表,key記錄每一行數(shù)據(jù)的所屬管行,就如同下邊的每一行數(shù)據(jù)中的表tables所屬的庫名,key不可重復(fù)荡陷,tally為計(jì)的數(shù)迅涮。

mysql> select table_schema, count(*) from information_schema.tables group by table_schema;
 +--------------------+----------+
 | table_schema       | count(*) |
 +--------------------+----------+
 | challenges         |        1 |
 | dvwa               |        2 |
 | information_schema |       40 |
 | mysql              |       24 |
 | performance_schema |       17 |
 | security           |        4 |
 | test               |        1 |
 +--------------------+----------+

但對于rand(),MySQL在處理它時(shí)會(huì)進(jìn)行兩次計(jì)算叮姑,第一次是在檢測時(shí),第二次是在寫入時(shí)耘沼,如果兩次值不同且第二次的值在key-tally表中存在,就會(huì)報(bào)錯(cuò)菠隆,故它的報(bào)錯(cuò)原理是寫入了重復(fù)的鍵key骚烧,比如floor(rand(14)*2)生成的隨機(jī)數(shù)為1010001赃绊,檢測為1可以寫入,但是寫入時(shí)再次計(jì)算變成了0碧查,0就被寫入為key忠售,第二次檢測為1可以寫入,但寫入時(shí)又進(jìn)行了計(jì)算變?yōu)?卦方,若再次寫入0就會(huì)重復(fù)添加了key盼砍,造成報(bào)錯(cuò)。

mysql> select floor(rand(14)*2) from information_schema.schemata;
 +-------------------+
 | floor(rand(14)*2) |
 +-------------------+
 |                 1 |
 |                 0 |
 |                 1 |
 |                 0 |
 |                 0 |
 |                 0 |
 |                 1 |
 +-------------------+

問題來了:

當(dāng)我進(jìn)行測試floor(rand(92)*2)時(shí)浇坐,按照上述原理應(yīng)該會(huì)報(bào)錯(cuò)的近刘,但是計(jì)算了800+次還是沒有報(bào)錯(cuò)觉渴,我就很納悶……希望以后的我會(huì)來看時(shí)能解決

下面是前8次計(jì)算值,最后很奇怪為什么會(huì)有下面的結(jié)果疆拘,我分析的話0應(yīng)該有3個(gè)哎迄,1應(yīng)該有4個(gè)

 +-------------------+
 | floor(rand(92)*2) |
 +-------------------+
 |                 0 |
 |                 1 |
 |                 1 |
 |                 1 |
 |                 0 |
 |                 0 |
 |                 0 |
 |               1 |
 +-------------------+
 mysql> select floor(rand(92)*2)c, count(*)from information_schema.schemata group by c;
 +---+----------+
 | c | count(*) |
 +---+----------+
 | 0 |        2 |
 | 1 |        5 |
 +---+----------+

基于extractvalue/updatexml的報(bào)錯(cuò)注入

基本原理: extractvalue/updatexml函數(shù)內(nèi)有個(gè)路徑參數(shù),當(dāng)這個(gè)路徑參數(shù)格式寫錯(cuò)時(shí)翔烁,會(huì)產(chǎn)生報(bào)錯(cuò)并返回該錯(cuò)誤路徑,故可以在錯(cuò)誤的路徑中添加查詢語句演顾。

基本格式:
 mysql> select extractvalue(rand(),concat(1,database()));
 ERROR 1105 (HY000): XPATH syntax error: 'security'
 ?
 mysql> select updatexml(rand(),concat(1,database()),1);
 ERROR 1105 (HY000): XPATH syntax error: 'security'</pre>

http header注入

postget都無效時(shí),可以嘗試http header注入

不同類型:

  1. User-Agent

  2. Referer

  3. Cookie

User-Agent 型

原理:修改User-Agent的值,進(jìn)行SQL注入,與getpost的原理一樣

  1. 抓包管搪,拿到頭部數(shù)據(jù)

  2. User-Agent進(jìn)行修改

  3. 發(fā)送改后的包

工具

  • burpsuite

  • 火狐插件 HackBar

  • 火狐插件 HTTP Header Live

  • 火狐插件 Modify Headers

用后面兩個(gè)插件就可以了

Referer 型

  1. 抓包更鲁,拿到頭部數(shù)據(jù)

  2. User-Agent進(jìn)行修改

  3. 發(fā)送改后的包

  • 火狐插件 HackBar

  • 火狐插件 HTTP Header Live

  • 火狐插件 Modify Headers

Cookie 型

原理:對Cookievalue進(jìn)行SQL注入澡为,原理類似

  • 火狐插件 HackBar

  • 火狐插件 HTTP Header Live

  • 火狐插件 Cookie Editor

    image

雜事

下午刷了一些盲注的題,嘗試使用手工測試媒至,測試了大半天才搞完一題塘慕,明天學(xué)學(xué)sqlmap

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末图呢,一起剝皮案震驚了整個(gè)濱河市骗随,隨后出現(xiàn)的幾起案子鸿染,更是在濱河造成了極大的恐慌,老刑警劉巖涨椒,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異是辕,居然都是意外死亡获三,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門疙教,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贞谓,“玉大人经宏,你說我怎么就攤上這事驯击。” “怎么了沪斟?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵主之,是天一觀的道長槽奕。 經(jīng)常有香客問我房轿,道長,這世上最難降的妖魔是什么夯接? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任盔几,我火速辦了婚禮逊拍,結(jié)果婚禮上上鞠,老公的妹妹穿的比我還像新娘旗国。我一直安慰自己注整,他們只是感情好肿轨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布椒袍。 她就那樣靜靜地躺著驹暑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪京办。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機(jī)與錄音叶雹,去河邊找鬼。 笑死钥星,一個(gè)胖子當(dāng)著我的面吹牛打颤,可吹牛的內(nèi)容都是我干的漓滔。 我是一名探鬼主播响驴,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼豁鲤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锅论?” 一聲冷哼從身側(cè)響起最易,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤藻懒,失蹤者是張志新(化名)和其女友劉穎嬉荆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酷含,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鄙早,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椅亚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片限番。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖什往,靈堂內(nèi)的尸體忽然破棺而出扳缕,到底是詐尸還是另有隱情,我是刑警寧澤别威,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布躯舔,位于F島的核電站,受9級特大地震影響省古,放射性物質(zhì)發(fā)生泄漏粥庄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧白嘁,春花似錦鲁沥、人聲如沸画恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揖赴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铭拧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留州既,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子鲫咽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Sql注入定義: 就是通過把sql命令插入到web表單提交或輸入域名或頁面請求的查詢字符串箩绍,最終達(dá)到欺騙服務(wù)器執(zhí)行...
    付出從未后悔閱讀 697評論 0 3
  • 最近兩周刷了一下sqli-labs,對sql注入有了一個(gè)基本的認(rèn)識芽淡。這里寫個(gè)總結(jié)挣菲。 1.sql注入原理簡單介紹在一...
    jun123123閱讀 1,335評論 1 3
  • 轉(zhuǎn)載自https://www.cnblogs.com/sylarinfo/p/3456445.html https...
    dingtom閱讀 2,768評論 0 0
  • MySQL數(shù)據(jù)庫初始的數(shù)據(jù)庫有: information_schema,mysql兄猩,performance_sch...
    屈大帥閱讀 552評論 0 0
  • Less-11 在username輸入'返回顯示存在SQL語法錯(cuò)誤淹真,證明存在注入漏洞 username和passw...
    理想型_lj閱讀 435評論 0 0