[RootersCTF2019]ImgXweb

我们先进行注册登录

image-20240924213036697

看到这,一般也就排除了二次注入,我们进行传文件

不能传.htaccess类似的。但是php啥的都可以传,不解析

jwt

[watevrCTF-2019]Pickle Store

我们发现购买第一个和第二个时,cookie会发生变化

image-20240924163709474

所以我们想到,是否能伪造session来购买flag

因为题目提到了pickle,那我们考虑用pickle反序列化来解析这个session

shell反弹

[羊城杯 2020]Easyphp2

我们打开页面,显示404,并有提示,只有来自GWHT的人才能通过

image-20240924152049225

我们想到修改cookie,我们将pass的值修改为GWHT就能进入网站

su提权

[GWCTF 2019]你的名字

我们往姓名处输入一个1,页面回显一个1

image-20240922201710345

这种情况,我们第一时间想到的是ssti模版注入

我们输入49,得到的居然是php报错

ssti

[RoarCTF 2019]Simple Upload

我们打开页面进行代码审计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
public function index()
{
show_source(__FILE__);
}
public function upload()
{
$uploadFile = $_FILES['file'] ;

if (strstr(strtolower($uploadFile['name']), ".php") ) {
return false;
}

$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 4096 ;// 设置附件上传大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Public/Uploads/';// 设置附件上传目录
$upload->savePath = '';// 设置附件上传子目录
$info = $upload->upload() ;
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
return;
}else{// 上传成功 获取上传文件信息
$url = __ROOT__.substr($upload->rootPath,1).$info['file']['savepath'].$info['file']['savename'] ;
echo json_encode(array("url"=>$url,"success"=>1));
}
}
}

是一个文件上传,但根往常的不一样,文件上传没有上传键

通过查询wp,我们发现这道题其实是定义了一个路由,我们知到在路由里,默认上传路径是/home/index/upload,但在这道题里,如果我们直接访问url+/home/index/upload,会直接报404错误,这里来解释一下

thinkphp文件上传

[NPUCTF2020]ezlogin

我们写入用户名和密码进行抓包

image-20240922150632129

我们发现题目提交的数据跟往常的不一样,而且是用的xml类型,通过查询资料,这题要用xpath注入

XPATH注入讲解

在xpath中的查询语句为:

1
"/root/users/user[username/text()='".$name."' and password/text()='".$pwd."']";

其中$name和$pwd是我们输入的字符,这里对字符没有经过任何的过滤。

xpath注入