您的位置:首页 > 数据库

对数据库进行中间人攻击

2016-02-23 10:28 288 查看
不是什么新东西,在drops看文章看见,觉得很有意思,就动手试了一下,just fun!

开始看见如此高大上的文章,以为很难,试过发现其实就和在内网玩arp插xss代码一样简单。

执行select @@version;用wireshark抓包之,如图:





结果:





数据库的执行语句和执行结果都明文进行传输,那么在内网是不是可以直接arp抓包获取客户端登陆的密码(客户端登陆的请求可不止有http,所以如果能抓数据连接包,比抓http的简单粗暴多了。)

不过我们这里说的是如何对查询语句进行注入修改

文章里的数据库是mssql,由于本机没有环境所以就改用了mysql(说明两个数据库都是可以的,oracle不知道行不行,找个时间试一下。)

1.kali开启ettercap,然后扫描主机,将要劫持的主机添加到目标





2.选择中间人攻击方式为arp,然后点启动,然后点击view里的Connection进入查看连接界面





我们点击3306那个连接查看拦截到的请求(请无视右边的错误,那是我劫持后导致语句错误)





此时就到了修改请求的时候,很简单,和我们玩中间人进行xss没什么区别。

下图为ettercap提供的例子:





看上去很简单,所以照着写就好咯,打开vim写个简单的脚本,如图:

这里我将select替换成了select user();

所以select @@version; 就变成 >> select user();@@version; (上图错误真相)





保存之后,用etterfilter编译一下,如图:





然后回到ettercap,加载编译好的脚本,然后打开Navivat执行select @@version;

然后就嘿嘿嘿了,如图:





渗透猜想场景:进入内网,发现内网一些管理系统,你想进去后台看看却进不去怎么办呢?开着Cain抓管理员的密码?渗透那个管理系统所在的服务器?对于前者,管理员可能不上,而渗透又需要时间。此时我们就可以利用中间人攻击hack掉执行的sql语句。

如登陆的语句为:select * from user_table where username = 'admin' and password = '123456'

在后面加上 or 1=1就好了,有没有感觉自己在sql注入,233333.

(其他猥琐场景请自行想象。)

现实场景:

现实总是很多坎坷的。

1.并不是所有的内网都能进行中间人攻击。

2.Arp动静太大可能会被管理员发现或者被某些设备监测、拦截。

3.你需要安装ettercap或者其他arp劫持工具(然后你就会遇到很多坑的问题了,权限呀,网卡呀..)

4.你需要知道劫持的数据库服务器的IP(当然,你可以全部都劫持。。)

..

(不写了,写坑心累。)

(刚发帖显示操作异常了,文章丢了一点忘记写的啥了,心累+1)

PS:爱折腾而已,大神飘过。

drops链接:http://drops.wooyun.org/tips/12749

enjoy!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: