SUCTF|SUCTF 2019 WriteUp
Web
Misc
签到题
给了一串编码,制作:
文章图片
【SUCTF|SUCTF 2019 WriteUp】打开网页就可以得到
flag
。game
查看源代码得到:
文章图片
base32
解密是一个假的
flag
。
文章图片
在
/js/three.min.js
里可以找到一个图片:iZwz9i9xnerwj6o7h40eauZ.png
。文章图片
文章图片
在图片的
lsb
隐写里可以发现信息:U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==
文章图片
3DES
的加密密文,找个在线网站解密即可得到flag
,密钥是之前假的flag
。文章图片
protocol
使用
binwalk
分析下流量包,可以看到很多png
图片:文章图片
用
foremost
命令分解得到一大堆图片:文章图片
重新审计流量包,发现传输每张图片的流量的数据部分第3个字节有一定的变化规律,遂将该字节相同的空白图片与字符图片一一对应,即得
flag
。Web checkIn
一个上传点:
文章图片
限制了上传
php
,还不允许出现
,还判断上传的文件头。过滤了
.htaccess
,这里需要用到.user.ini来构造PHP
后门。构造去包含
1.gif
:文章图片
再上传
1.gif
:文章图片
访问
/uploads/9c1534b1e8dbb5a0c0ec3f70d24f9627/
成功被执行:
文章图片
获得
flag
:文章图片
文章图片
easy_sql
文章图片
有个非预期解,存在
.index.php.swp
:$v){
if(!empty($v)&&is_string($v)){
$post[$k] = trim(addslashes($v));
}
}
foreach ($_GET as $k=>$v){
}
}
//die();
?> Give me your flag, I will tell you if the flag is right. a>
40){
die("Too long.");
}
$sql = "select ".$post['query']."||flag from Flag";
mysqli_multi_query($MysqlLink,$sql);
do{
if($res = mysqli_store_result($MysqlLink)){
while($row = mysqli_fetch_row($res)){
print_r($row);
}
}
}while(@mysqli_next_result($MysqlLink));
}?>
可以看到有个管道符限制,非预期为:
文章图片
预期解涉及到了
MYSQL
一种管道符模式。可以在
MYSQL
中开启支持管道符来进行字符串的拼接操作:> set sql_mode=pipes_as_concat;
如下:
先在数据库准备一些测试数据:
文章图片
尝试添加
||
,只是当作操作符。文章图片
如果开启模式后,可以看下效果:
文章图片
可以看到把
id
里的内容也给输出出来了。看一下最终查询的语句:
$sql = "select ".$post['query']."||flag from Flag";
构造
payload
:1;
set sql_mode=pipes_as_concat;
select 1
文章图片
非预期也比较好理解:
文章图片
Upload labs 2
推荐阅读
- 2019-02-13——今天谈梦想()
- 20190302|20190302 复盘翻盘
- 2019年12月24日
- 2019.4.18感恩日记
- 2019.4.2咖啡冥想日记
- 2019-1-14
- 亲子日记(287)2019.4.27.
- 考前焦虑——接纳情绪,转移注意力
- 2019-01-17-晨读7期-直子Day25
- 2019-07-04优美学子杨慧(创业路上,我不是一个人在战斗)