进行了前阶段的信息收集,这里跳过了域名、指纹、服务器信息收集过程的详细介绍。
都是那些套路而已,懒。
域名:xxxxxxin.com
指纹:
web server operating system: Windows
web application technology: ASP.NET, PHP 5.5.31
数据库:mysql
端口情况只开放了常见的80端口,发现是西部数码主机,主机商自带的cdn,兼具这一些waf的功能。
通过社工的手段拿到了一个前台的账户密码:
`user:18888xxxxxx`
`pass:xxxxxx`
登录之,测试了一些常见的输入点,发现了一个bool型的盲注。
这里只拦截了空格+and 、空格加or、sleep等一些函数,有一些危险的的mysql函数都没有拦截。
这里用sqlmap直接使用自带的tamper就能执行很多sql语句,如果要执行一些被拦截的语句,那么使用/*%0a*/之类的内联方式进行绕过,详细方法参考网上的waf如何绕过进行灵活的构造。
利用注入点对基本的权限进行探测和信息的进一步收集,得到如下结论:
1、当前用户低权限,非root用户
2、不能堆叠注入,进行update等修改数据库的操作。
3、权限的问题导致了无法使用load_file等函数。
说到这里用sqlmap碰到的坑,当一个注入点满足两个注入类型的时候,sqlmap默认会以后面的那种方式进行注入。
由于我为了过前面的那个waf的拦截自己写了tamper,所以绕过了它的过滤规则,直接使用时间盲注去跑。非常的慢。
后面朋友给了两个建议:
1、删除.output文件夹里面对应的host文件夹,然后直接用普通的tamper就不会触发time-based blind sqli。
2、在本地搭建一个测试站点,也是基于bool型的。右键打开.output文件夹里面对应的host文件夹里面的seesion文件,修改注入点。(后面发现这个方法只适合旧版本的sqlmap,新版的sqlmap的session文件成为了sqllite格式了,并且做了加密)
或者嫌弃sqlmap fuzz了太多无用的payload就写个脚本吧。
言归正传利用如此低的权限只能往破解管理员的hash再找后台这一条路走了,顺便了解数据库的结构,了解网站的业务逻辑。
得到当前库:
得到管理员的hash:
运气真不好,不是正常玩意儿(md5)。怀疑是aes或者rc4的加密。
也有一些奇葩的开发会把aeskey放在数据库中,但一般是写死在程序中。
翻了翻发现aeskey确实存在数据库,但也是加密的。。。。
翻了翻网站,用burp自带的爬虫功能获取到了一些目录信息,判断是由Thinkphp进行二次开发的。
很容易就找到后台地址:/admin.php/Home/Login
同时发现了后台登录是有日志记录的,应该是记录ip地址吧。看这个字段,drrz(登入日志)
这里需要留意心眼,哪怕上了代理也不要贸然登入,除非你有足够的把握拿到shell,不然很容易惊动管理员的。
然后那串醉醉的加密也让我很是无语,让几个擅长ctf的朋友看都没有解密出来。
继续翻看看有无有用的信息,翻翻后台。看看后台的请求逻辑。
发现了有用的注释,既然是tp二次开发的,那么是不是也是也有人用这套框架,或者基于被人的框架改成这个站点的源码?
来到了只有你想不到的,没有你搜不到的gayhub翻转,看能不能找到源码,进行分析。
随便点击一个链接去看,将源码下载下来分析。
下载下来的这套源码有plupload这个文件夹,我访问站点发现确实存在这个目录。
为了确认我的猜测,我又对应访问了几个目录均存在。我确定这套源码应该和原来站点的所差不及了。
进行分析,发现他的加密方式是rc4,key是 default_key,成功解密,不过解密了也不敢登录...记录ip。
继续翻代码,看看是否有其它利用的地方,最终发现了一个写配置文件的接口存在着任意文件写入漏洞...
不过这个利用点只能利用一次,一旦写入成功那么,就无法再次利用了。
手心揣着汗,想起了当年配置文件插一句话把人家网站插死了..
现在本地进行了测试,保证无误。
看这个接口应该没有被利用过,运气也是相当重要的。
成功getshell,由于自带的wts waf对一些敏感的函数进行拦截,菜刀直接连接失败,在本地搭建环境,利用脚本进行转发。
内网就算了,这个东西没有什么内网,接下来可以获取受害人的信息,获取管理信息。
没什么大的亮点的一次渗透,主要是一些小技巧的使用。还有就是gayhub是好东西,没事多上去搞基。
给您拜个早年了~
领取专属 10元无门槛券
私享最新 技术干货