前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次历史业务安全测试

记一次历史业务安全测试

作者头像
顾翔
发布2019-12-12 12:15:28
6330
发布2019-12-12 12:15:28
举报
文章被收录于专栏:啄木鸟软件测试

来源:http://www.51testing.com

最近在对公司历史遗留的老业务进行安全测试,简单记录一下测试的过程。

  子域名是http://upload.xxxx.com/

  主页是一个phpinfo的页面,首先对网站进行文件扫描。

  wfuzz -w common.txt -z list,-.php-.html –hw 76 http://upload.xxxx.com/FUZZFUZ2Z

********************************************************  * Wfuzz 2.3.4 - The Web Fuzzer *  ********************************************************  Target: http://upload.xxxx.com/FUZZFUZ2Z  Total requests: 13839  ==================================================================  ID Response Lines Word Chars Payload  ==================================================================  003313: C=200 5 L 11 W 203 Ch "crossdomain.xml - "  006047: C=200 562 L 2593 W 46219 Ch "index - .php"  006058: C=200 562 L 2593 W 46219 Ch "index.php - "  008776: C=301 0 L 0 W 0 Ch "php - "  012639: C=200 86 L 179 W 2315 Ch "uploadfile - .html"  Total time: 131.0165  Processed Requests: 13839  Filtered Requests: 13834  Requests/sec.: 105.6279

扫描结果中index.php为首页的phpinfo页面,另外扫描发现了php目录和uploadfile.html文件。

  访问php目录返回401错误:

  pic2

  http://upload.xxxx.com/uploadfile.html 为空白页

  pic3

  查看源代码有所发现:

  pic4

  这里猜测phpPath为php目录,结果证实了我的猜想:

  pic5

  构造参数:

  pic6

  上次文件,查看返回:

  pic7

  图片成功上传,另外发现了一个命名疑似图片裁剪的文件phpcutPhoto.php

  先测试了文件上传漏洞,发现服务器进行了图片验证,然后强制改后缀,此路不通

  访问http://upload.xxxx.com/php/phpcutPhoto.php 发现文件不存在,这里走了些弯路

  后面测试发现地址应该是http://upload.xxxx.com/php/cutPhoto.php

  前面uploadHead.php中phpPath参数值为php,所以后面文件名误加了php,这里应该是以前的代码有bug

  pic8

  访问后提示打开失败,明显是缺少了图片地址的参数,这里可以使用WAScan、Arjun等工具进行参数爆破。我这里就简单用burpsuite fuzz爆破一下:

  pic9

  参数名可以考虑使用https://github.com/s0md3v/Arjun/blob/master/db/params.txt 里的参数名。

  这里我自己简单构造了一些常见的,没包括首字母大写的情况:

img  image  images  imgpath  img_path  file  filename  path  file_path  filepath

  参数Fuzz爆破结果:

  pic10

  返回中可以看到,虽然报了错误,但是图片剪切后的文件成功生成了:

  pic11

  访问同服务器的图片域名,发现文件存在:

  pic12

  现在我们可以来测试这个接口的本地文件读取和ssrf漏洞

  先测试本地文件包含:

  pic13

  path=/etc/passwd,返回/etc/passwd.jpg.jpg打开失败

  把path改成一个不存在的文件:

  pic14

  path=/etc/test,返回/etc/test打开失败

  当path为一个存在目录的情况:

  pic15

  测试发现读取一个存在的非图片后缀文件或目录时,会自动把path加上.jpg.jpg

  这样的话我们只能通过这个接口探测服务器的文件或目录,但无法进行正常的文件读取的操作

  另外我测试了ssrf,发现无法直接访问外部链接

  pic16

  突然发现忘记了php伪协议的操作

  pic17

  php://input没戏,另外尝试了其它协议配合截断读取的方法,也都以失败告终。

  但当我测试到path=php://filter/read=string.tolower/resource=http://m3rryz.com/ 返回有了数据

  pic18

  并且我的blog获取到了服务器的请求:

  pic19

  可以看到服务器请求了http://myblog.com/.jpg.jpg 并返回了404

  那么当我在blog上,构造一个x.jpg.jpg的文件,内容为/etc/passwd

  然后让path=php://filter/read=string.tolower/resource=http://m3rryz.com/x

  是否就可以绕过之前的限制,进行本地文件读取呢?

  然而现实很残酷:

  pic20

  这里path必须为真实图片,否则无法进行cut操作。:(

  不过过程还是有点意思的,对文件读取和ssrf漏洞了解更深了一些。

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
手游安全测试
手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档