一次实战,网站为www.aaa.com。
进入网站主页,会发现一个登陆框,只有用户名和密码。
1、首先用admin/admin尝试一下,惊喜,居然登陆成功。但仍然在网站主页;主页溜达一圈之后发现,全是静态页面,完全无可操作的地方。
主页上还有另外两个入口,一个是邮件系统,查了一下,是专门厂商做的,放弃爆破,直接放弃;一个是另外一个系统,有点像后台管理,使用admin登陆失败,爆破失败。
2、在又重复转了几圈之后,开启了AWVS扫描,爆了两个高危;一个是sql注入,使用sqlmap成功进入os-shell;一个是iis短目录泄露,但是尝试连接都失败。
这个sql注入是延时注入,虽然是system权限,但是操作非常的慢。(手工注入不太溜,不然可以直接用代理,使用sql注入语句执行cmd命令)
3、此时脑子灵光一闪,试了一下常用的管理目录/manage/,惊喜,没想到真的进入了后台管理登陆页面,并不是“1”中提到的后台。这下惊喜又出现了,尝试admin/admin,提示用户被禁用,又用administrator/admin;居然成功了,还是超级管理员。进去溜达一圈,的确是网站的后台管理,可以发布信息,可以新建书签,模板,管理用户等。
4、找上传点。新建页面,可以上传图片,一个是编辑器中添加图片,一个是附件添加图片;尝试了修改内容、图片马、通过拦截修改post包,均告失败,上传之后都会统一改文件名称。
5、添加模板,但是模板都是.vm后缀。即使写入1.asp后缀,也会被做处理,最后的文件还是1.vm。
6、后台管理中,一处搜索页存在sql注入,和第二步中的一样,延时注入,system权限。此时陷入了思维迷宫。求助于小伙伴。使用手工注入,后面用到的新建用户、ping等都是手工注入实现的。
1>使用powershell反弹shell出来,该服务器是server2003,没有powershell。
2>新建用户test,并添加至administrators用户组;服务器开启3389端口,但是远程登陆不上。(后来实际证明这是一次乌龙,密码错误,密码错误,设置的密码太复杂,到底为什么出错,表示不知道啊。。。)
3>使用lcx。通过外网下载lcx到服务器;然而下载失败,ping baidu.com 不通。猜测是站库分离。
4>通过web服务器上传需要的文件,通过sql服务器 访问web来执行。如mimikatz抓密码,页面上上传失败。
7、意外又发生了,该系统使用的是IIS6.0,有文件解析漏洞。关键是怎么利用,模板管理里面可以新建文件夹,但是对文件名都有限制。
使用burp suite,查看新建文件夹1.asp的包,发现url是这个样子的,http://www.aaa.com/xxx.aspx?filepath=channel。尝试通过代理修改url为http://www.aaa.com/xxx.aspx?filepath=channel/1.asp;到页面查看,成功新建了一个1.asp的目录,此时就在该目录下新建一个1.vm,写入asp语句,使它在同目录下新建一个go.asp文件,通过访问1.vm的绝对路径http://www.aaa.com/channel/1.asp/1.vm,写入提交asp一句话木马到go.asp。访问go.asp的绝对路径,通过菜刀连接,成功。
8、因为网站是aspx的,asp的权限有限,到1.asp目录外,上传一个aspx的大马。看一看站库怎么解决。
9、在kali上使用reGeorg-master开启全局代理,用rdesk尝试连接登陆,依然登陆失败。这时候终于神经质的想到去改一下test用户的密码。使用sql注入改成123;登陆成功。哭了。。。。
10、登陆进去之后,查看是否存在域及域中还有什么服务器。结果,结果,,只有它一台,真的只有它一台。
也就是从sql注入之后,都是密码错误这场乌龙引发的风暴。
最后附上手工注入使用的方法:
打开xp_cmdshell的限制,下面创建一个临时表:
http://aaa/?page=1;createtable temp(id int identity(1,1),avarchar(8000));--
执行ipconfig /all并将结果写入新创建的临时表中
http://aaa/?page=1;insert into temp exec master.dbo.xp_cmdshell 'ipconfig /all';--
读取结果:
http://aaa/?page=1 and (select substring((select a from temp for xml auto),1,4000))>0--
删除创建的临时表
http://aaa/?page=1;drop table temp; --