不是什么新东西,在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!