马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第五关:
根据提示输入ID,恣意来个一
输入100,因为数据库没有,所以这里没输出内容
还是先找注入点:输入单引号试试
注入点找到了‘
查询数据库列数;?id=1' order by 4 --+
测试发现order by 3时页面正常,当对第4列字段进行排序时,页面报错。阐明该表只有3列
页面有布尔状态,所以用布尔盲注。页面没有回显不能用连合查询注入,没有报错信息,不能用报错注入
在这里,我们猜测数据库长度大于10,这里没有效果输出,阐明数据库长度小于10
在这里,我们猜测数据库长度为8,发现有效果显示。阐明数据库长度为8
再来一个substr()的例子:
猜测数据库第一个字符为K
在猜测数据库第一个字符为s
其他的操作也可以通过如许猜的方式得出
例如表名,字段名等
第六关:
先介绍一下,updatexml报错注入
原理: 我们在利用该函数进行报错的时间一样平常会去修改其第二个参数,通过构造非法格式的查询语句,来使其返回错误的信息,并将其更新出来。假如路径中(第二个参数)存在特殊符号 比如'~',就会报错 , 同时显示路径参数的内容,假如路径参数中包罗函数 , 那么函数将会被执行 , 并将实行效果展示在报错内容中。
首先认识的单引号字符注入
发现没反应,可能过滤了单引号
OK,来试试双引号
注入点就找到了
试一试:id=1" and updatexml(1,concat(0x7e,(select database())),3);
获取表名:
id=1" and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'security' limit 0,1)),3)--+
web页面只能显示一行,所以用limit 限制
第七关:
首先寻找注入点
根据报错信息可以猜测'))大概"))
先来试试'))
可以发现注入点就是'))
利用select ...into outfile 语句的前提条件
1.mysql数据库中secure_file_priv参数设置允许对目录进行导入导出操作
2.mysql对路径有读取权限
3.在进行文件读取时要有权限。
secure_file_outfile参数
1.假如为空:不做任何限制,,任何目录都可以
2.假如指定了目录,就只能从这个目录导出
3.假如设置为NULL,则禁止导入导出功能。
利用导出语句进行数据爆破
?id=1')) union select 1,database(),version() into outfile '/root/text' --+
发现有标题
show global variables like '%secure%';
在进行数据导出的时间出现–secure-file-priv option so it cannot execute this statement
标题时,修改/etc/mysql/mysql.conf.d/mysqld.cnf文件
在末尾添加一句secure_file_priv=”/”即可将数据导出到恣意目录
又来了这个标题
算了算了。先跳过
第八关:
注入点为'
解释一下为什么不用报错注入:
当我们输入的语句精确,页面正常回显;当我们输入的语句错误,页面并不会给我们显示报错信息。显然我们不能利用报错注入了。
盲注:首先盲注是SQL注入的一种,盲注是在SQL注入的底子上,根据SQL注入的回显不同而定义的。也就是在服务器大概页面没有错误回显的时间完成的注入攻击。其实也就是猜解,输入语句猜解数据库名字、表名等等。
时间盲注:通过页面的响应时间来判断条件是否精确。
布尔盲注:布尔盲注一样平常适用于页面没有回显字段(不支持连合查询),且web页面返回True 大概 false。
举个栗子:
这是精确的输入
错误的输入
第九关:
可以看见一样没有内容信息显示
老方法:报错注入和盲注
先来报错注入:
id=1' irder by 4 --+
经过判断该数据库的字段数为3,我这里根据第四列排序,肯定是错的。
固然了:布尔盲注也用不了了
因为利用布尔盲注的前提是页面必须在面对不同的语句的时间有不同的回显。也就是语句精确回显正常,语句错误回显不正常。
这种时间适合采用时间盲注:
if(expr1,expr2,expr3)含义是假如expr1是True,则返回expr2,否则返回expr3。也可以理解为假如expr为True,则实行expr2,否则实行expr3。
sleep(int):代表过int时间后响应
测试:
?id=1' and sleep(2) --+
这段代码的含义是让网页制止两秒后响应,假如单引号是注入点,那么该页面就会制止两秒后再响应,假如双引号不是注入点,那么网页就会正常响应。
九关的注入点为单引号。
时间盲注猜数据库长度:
id=1?and if(length(database())>8,sleep(2),0)--+
可以发现是立即相应的,阐明数据库长度小于=8
第十关:
发现是基于双引号的注入
测试过程:可以发现页面始终是如许,可以考虑下时间盲注
先' ,然后" ,反正就是猜嘛
id=1" and sleep(2) -++
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |