最低等级下:先试着用单引号:
结果:
所以试着构造查询语句可能是:
select* from **=’’;
再次进行测试,构造一下查询语句,试着用数字1构造,结果发现:
再次猜测语句可能是
select(),from () where ()=’’;
试着输入2,结果又不一样:
说明userid 与某种东西存在关联;
再来一段sql真命题,就可以构造成这样:
Select(), from () where ()=’2’ and ‘2’ =’2’;
既然这样的话,查询字段并且注释掉单引号
能发现1是存在的
接着试2和3。当到3的时候:
出现了这种情况,不知道第三列,那字段数2就停止了,
代码分析:
可以看到无过滤,直接引用一下库和版本号,测试一下
中级别:
可以看到mysql_real_escape_string对某些字符进行转义,且对输入进行了限制
发现id并没有在这转换,那就在这块儿添加
继续添加
从情况可以看出来为数字,那么就可以用数字测试,并且将#转义:
将字符型改为数字型:
版本出现,
再试
使用mysql语法尝试获取表名,网上的查表法
高等级尝试,
有了前面的经验,试着猜下字段:
字段仍然是2,按照前面的方法:
原文始发于微信公众号(暗魂安全团队):【web安全】SQL Injection记录
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论