NoSql的相關介紹(資料庫的發展)
常見提交方式下的注入漏洞
WEB應用在資料傳遞接受中,針對SQL注入安全漏洞,由於資料大小,格式等原因,指令碼在接受傳遞時會有多種傳遞方式,傳遞方式的不同將影響到安全測試的不同
第一點:資料常見提交方式
https://www.cnblogs.com/weibanggang/p/9454581.html
get與request提交方式:
本地測試,直接使用連結傳參,各種提交方式的效果如下圖,get與request提交方式本地有回顯,說明這兩個提交方式可以通過連結傳參傳送到伺服器
post提交方式:
給伺服器同時本地echo回顯:用post data外掛,或者用burpsuite抓包改資料
cookie提交方式:
用burpsuite直接在響應正文插入cookie值
$_SERVER['HTTP_ACCEPT']的作用(頭部注入)
先輸入賬戶加個’看看報錯
分析:
引數有第2對單引號進行閉合,就好辦了
注意:注入的方式有三個:post data外掛,burpsuite抓包改包,還有直接在框裡面直接填
這裡推薦用post data外掛,簡單直觀,先右鍵檢視源程式碼表單哪些元素要post提交的
就這三個元素(提交的時候一個也不能漏)
用uname引數進行閉合(三個引數之間用&連線)
uname=-gsdftg' order by 2#&passwd=pass&submit=Submit
報錯負號(顯示錯誤資訊),閉合單引號(執行我們的命令),註釋負號#(不使用--+註釋的原因是:POST引數不經過url編碼,命令傳輸到後端註釋符變不了標準註釋符:-- (後面有空格))
注入成功
隨便輸入表單,抓一下包,第一個包(POST包)是登入驗證的請求包,將cookie儲存在伺服器同時在本地留下session資訊
再裡面加個cookie資訊,然後放過去
第二個包(GET包)直接驗證cookie,與第一個包相互匹配,一樣改個cookie,放過去
登入成功,檢視歷史包找到GET包,改包
報錯
報錯,註釋,一把梭
補充:request請求方式是包含其他請求方式(GET,POST,COOKIE等)的,也就是說,用其他請求方式請求的資料,request請求也可以做到,這個適用範圍就很廣了,如bypass方面等
先來看一下正常登陸進去的介面,正確的賬號密碼都是admin
同時抓包看看資料傳輸與SQL語句執行
可以看到這裡的uname與passwd引數傳遞到SQL語句中的username與password引數中進行查詢,由於①username and ②password 的邏輯判斷:真and真=真,所以可以登入成功,那麼我們只需要構造一個邏輯判斷為真的SQL引數,即可進行萬能登入的操作
比如在使用者名稱輸入框中輸入:
admin' or '1'='1# //邏輯判斷:真或真=真,可登入,最後別忘了用#號註釋掉後面的SQL語句
或者
admin' or 1=1# 真或真=真
或者
admin'and ''=''# 真或假=真
或者
admin'or' 真或假=真
思路一樣,只是將username引數變為假,password為真的“or”判斷
'or '1'='1'limit 1# 假或真=真 (limit語句要不要都一樣)