SQL INJECTION.

這是一篇小白學習SQL注入的筆記

在2017年的第一天,小白決定要開始寫筆記了,不然什麼鬼東西一下子搞定完之後就又忘了。最近在某站上做題,沒什麼思路,只能邊上網查WRITEUP邊做了,2017要有所改變。

對於SQL注入是個常年的漏洞了吧,只是你後來發現想去注入的時候,發現現在的WAF太多,用工具像某MAP已經有點難滿足各種強大的繞過,也可能因爲我是小白不會用那工具,也許可以用機器學習來完善注入,我是不會啦。但是正所謂人才是安全環節中最重要的一環,所以沒什麼是可以難到人的,手工注入纔是最厲害的,各種繞過只要你想得到就是可以繞過的。
本篇筆記還在完善中…

WAF繞過

注入嘗試

題目例子演示

1. i春秋題目:SQL注入(百度杯9月第二場)

題目二話不說就是注入。
這裏寫圖片描述
作爲小白只能以我侷限的的知識去解了。首先是想試一下order by,union select的,結果就給我顯示了inj code。。。其他太明顯的就是直接i春秋的WAF了吧,我都被405攔截了,你還要我怎樣,我很絕望啊!
這裏寫圖片描述
那麼把id的值換一下會有什麼?
發現id=1的時候會顯示flag{在數據庫中},id=2的時候會顯示test,id=3
或是其他的時候都是空白頁。好像並沒什麼卵用。
這裏寫圖片描述
試了其他幾個什麼常見的注入繞過,畢竟作爲小白的我瞭解還是太少了,只會大小寫UnIon SeLecT,加註釋/**/,等一些低級繞過,沒有特別大的腦洞又不知道要嘗試什麼,簡直生不如死。毫無頭緒之際,我只能去看WRITEUP先了。
危急關頭居然說頁面F12有提示。。。打開一看果然有sql語句
這裏寫圖片描述
當我在id後書寫什麼,只要頁面返回不是405的話,那句sql也會變,輸入id=1 d
這裏寫圖片描述
接着嘗試了一些其他符號後,發現最後被過濾掉的<>可以用。
所以構造un<>ion sel<>ect 1,2,3來爆顯位和猜字段數,其實字段數可以用order by來猜,可以知道字段數是3,只有1,2爲顯位。
然後爆表名:un<>ion s<>elect 1,table_name,3 from information_schema.tables where table_schema=database().
database()是個mysql函數,返回當前使用的數據庫,利用的是mysql中的information_schma庫中會存所有數據庫的表,字段的信息。得出表明爲info,其實這已經從那sql註釋中就可以得出了。
這裏寫圖片描述
接下來就是看看有什麼字段,un<>ion s<>elect 1,gro<>up_con<>cat(col<>umn_name),3 from information_schema.co<>lumns where table_name=0x696e666f
這裏寫圖片描述
看來哪個字段是我們想要的已經很清楚了。繼續用union select語句來爆出flag,un<>ion s<>elect 1,flAg_T5ZNdrm,3 from info
這裏寫圖片描述
很好,flag拿到!(感謝ichunqiu的WRITEUP我就是記個筆記)

2.還是SQL注入,不過這次題目是SQLi(第三場)

創建完題目之後,訪問一懵,這是什麼鬼,php名字一大串,開始就想來個下馬威。
這裏寫圖片描述
所以我就小白臉的按下了F12,發現有個login.php?id=1,會有什麼蹊蹺,看看便知。
這裏寫圖片描述
這裏寫圖片描述
看起來這裏是注入點?於是嘗試過上面的BYPASS思路,當主辦方是傻的,兩次題目的BYPASS能一樣嗎。好像沒戲呀!情急之下,我又去搜索了一下,發現有思路。BURPSUITE抓包看一下。
第一次沒有收穫。沒發現什麼異常的。
這裏寫圖片描述
去掉php再來一次,發現有重定向header裏面有個page,值是l0gin.php?id=1,是0不是o,看來剛纔那個是個干擾。出題人真是傷心病狂這樣欺負小白。
這裏寫圖片描述
來吧,訪問看看!
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
手賤加了個分號,結果發現下面也帶上了分號
這裏寫圖片描述
試試其他的,什麼order by 啊,union 啊加上試試.最後發現原來逗號之後的內容會被截掉,好吧其實不是我發現,只是根據思路驗證了一下。很好逗號被截了那我union select 還怎麼加上1,2,3?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章