作者:rabbitsafe
大家好,我是rabbitsafe,这是本人开始研究asp程序发现的第一个漏洞,就是一个注入漏洞,但是只能用手工注入,工具检测不了的.我花了三天想出了从注入到后台拿webshell,因为后台拿webshell这种方法网上还没有,反正我是没看见过,应该算是原创,方法比较另类,大家往下看就知道了,开始讲入正题.
今天我要检测的是一个影院系统,好像叫蚂蚁影院系统.存在注入的文件叫wantlogin.asp代码. (图1)

首先是判断取得的提交值userid1是否为空,不为空的话就进入SQL语句中验证取得的用户名及密码是否和数据库内的用户名及密码一致.如果不一致则弹出”用户名及密码错误”,一致就弹出”恢复成功”.这是一段典型的注入漏洞代码,在放入SQL语句进行查询时没有经过任何过滤,而且又是使用的request,这就给我们提交注入语句提供了很大的方便.
因为SQL语句是否执行成功,是通过弹出窗口来判断的,所以工具无能为力,我试过工具都不行.只有手工注入了.为了便于演示,我下了一个蚂蚁影院系统到本地,我们现在来猜解管理员的用户名和密码.我们在URL中提交如下字符”http://192.168.1.135/wantlogin.asp?userid1=11&pws=22”因为没有11这个用户,所以会弹出错误窗口,而我们将11换成如下字符后11’ or 1=1 or ‘’=’.放入SQL语句后就成了,select money,online form users where userid=’11’ or 1=1 or ‘’=’’ and password=’ f8ed5d21a44b0e58’.中间的1=1就可以换成我们想要的查询管理员的SQL语句了.为了方便大家提交查询语句,我特意做了个提交语句的html页面,(如图2)

你只要把你想要查询的SQL语句放入中间就行了,然后通过返回的弹出窗口判断提交的SQL语句是否成立.从而查出管理员用户名和密码.由于这个程序我们知道管理员的表名,所以应该很容易就能查出管理员的用户名和密码了.以下是我在查询中用到的几个SQL语句,希望能给大家查询时带来方便.(图3)

现在,我们已经有后台管理员的用户名和密码了,现在来得到webshell,后台的链接地址是”http://192.168.1.135/admin/login.asp”,我们先进入后台,后台功能比较简单,没有什么能利用的,没有上传图片,生成页面之类能用的功能,只有一个数据管理,里面有数据备份, 数据还原, SQL语句查询等功能,因为不能上传东西上去,所以备份好像没有什么用,而且数据库的路径也不清楚,不然可以备份成asp,然后插入一句话木马.没办法,我想了一晚上也没有想到什么好办法,拿webshell就停止了.
第二天,由于没有webshell,所以上课的时候心里还想着,影院系统后台怎么拿wehshell,突然想到前几期黑客手册上另类备份文件的方法,我可以先把conn.asp备份成txt类型的文件,然后查看后就能得到数据库路径了,说干就干,上完课后,回到寝室.我马上打开电脑,进入后台,因为这套程序链接数据库的文件是articleconn.asp,所在在当前数据库路径:写上articleconn.asp(图4)

备份到网站根目录下,在url中打开看效果把,” http://192.168.1.135/mayi/conn.txt”(图5)

那我们把开数据库看看,”http://192.168.1.135/mayi/data/mayi.asp”(图6)

Script 块缺少脚本关闭标记(%>)。肯定是加入了防下载的表名,我们打开数据库看了下,果然有个nodown的表,这个表就是防下载的,不能下载了,插入一句话木马也没有用啊.真晕,得到webshell就这么难吗?现在情况比昨天好些,有了一定思路了.
第三天,早上起来,继续想着这个程序拿webshell的方法,当我再认真看的看了后台每个功能时,突然想到,可以执行SQL语句啊,因为存在nodown这个表,所以才不能下载,也不能插入一句话木马的,既然可以执行SQL语句,那我们可以用SQL语句来删除那个表啊,这样不就可以插入一句话木马了吗.说干说干,我马上在SQL里写入drop table nodown执行,打开数据库, (图7)

全部显示乱码,已经说明成功了,可以插入一句话木马了.在后台公告栏里加入一句话木马,我在多处加了,再打开数据库看看效果,(图8)

说明成功了,马上打开一句话木马客户端提交上去,终于成功拿到webshell了.真爽.
其实这套影院系统还有一个上传漏洞,就是动力的无组件上传漏洞,我想大家应该很清楚了,就是upfile.asp这个文件,方法不用我多说了吧,大家应该都会用的.但是网上的这套影院系统把upfile.asp文件都删了.所以我这种方法还是有比较有用的.
最后总结下这次的思路吧.首先通过wantlogin.asp这个文件没有过滤’单引号,从而产生了字符型注入,通过手工猜出了管理员用户名和密码,进入后台再通过备份链接数据库文件为txt型文件,在浏览器中查看到数据库路径,因为数据中有防下载的表,所以用后台SQL语句删除防下载的表,再写入一句话木马,从而最终拿到webshell。
 
 
希望这篇文章能给大家在后台拿webshell时提供一恩路.其实入侵中思路是最重要的,在遇到因难时,不要放弃,只要多想,总有突破的方法,最后祝愿大家技术进步.身休健康.马上要过年了,希望来年大家手里肉鸡多多,嘿嘿!

文章如转载,请注明转载自:http://www.5iadmin.com/post/230.html