作者:左昱_leftshine
刚发现漏洞时,我就已经成功实现了注入,因为怕发到网上后被玩坏,一直没有发布。今天去看了看,原网页已经无法访问了,现在发出来应该就没有什么大问题了。
本文仅供学习交流,目的是为了构建更加安全的网络环境!
注入地址
某VIP会员专用系统 http://www.tcmpv.com/index.php/Home/Public/login.html
相关工具
注入工具:
超级SQL注入工具【SSQLInjection】http://www.shack2.org/article/1417357815.html 明小子
抓包工具:
Wireshark
注入过程
1.测试漏洞
1)测试 ’
首先打开网页,如下图:
看到测试结果报数据库错误,这就证明该系统存在SQL注入漏洞。而且这些粗心的程序猿连数据库表名都直接暴露出来了(tp_login),这不就等于直接写着:
2)测试 ‘or”=’
进一步测试,输入” ‘or”=’ “,点确定,直接就登录成功了,如下图
不用密码,直接进去了,看来漏洞真的存在!
3)测试 3389′ and 1=1 and ‘a’=’a
接下来测试下能不能使用注入语句,这里有两个选择:
- 继续使用or语句
- 找到真实密码
or语句前面已经有说明,这里就以知道密码的情况作说明(or语句原理相同)
网页上直接给出了获取密码的方式:
接下来就可以对数据库进行数据库名(前面提到,登录错误信息中已经包含了数据库名”tp_login”,真是省事啊)、表名、列名……的猜测了
手动猜测的具体方法可以参考这里:
sql注入实例分析(http://www.cnblogs.com/leftshine/p/SQLInjection.html)
当然手动猜测的量太大了,这么劳神费力的事当然要交给程序来完成,不过还是强烈建议看看这篇文章来了解下SQL注入的基本原理,不然后面操作一片茫然。
2.构造数据包
因为该系统不能简单通过网页URL来传递信息,所以我们需要构造数据包以POST方式发送数据包来注入。
1)手动构造:
根据POST数据包结构手动构造一个用于注入的数据包,具体怎么构造那就要去好好学习网络协议了……
2)抓包构造
这就简单多了,我们直接抓取正常发送的数据包,加以改造就可以用来注入了!
这里我们使用Wireshark来抓包,关于Wireshark抓取与分析HTTP包,参考这里:应用层协议FTP、DNS协议、HTTP协议分析(http://www.cnblogs.com/leftshine/p/5698890.html)
使用Wireshark抓取到的POST数据包内容如下:
修改成注入使用的POST包:
这个数据包可以由软件”超级SQL注入工具”根据上面的包自动生成,具体操作请参考软件压缩包中相应的使用说明。
3.注入
配置完后,点击”发送数据”验证当前配置的数据包是否符合条件,若能够正确返回网页信息,则配置可用:
4.获取数据库信息
点击 获取数据
接下来就可以随心所欲的获取数据了。
获取到的数据
获取到的管理员账号信息:
至此,整个SQL注入成功完成!
End.