“想与你赏流河山川,踏青山风光无限,樵采打渔为生,尽是梦里的人间。”
菜鸡来写wp啦…
Level - Week 1
WEB
谁吃了我的flag
first
根据题目描述,vim、未正常关机…
估计也就是考察vimbak的知识,意外退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样。
第一次产生的交换文件名为“.file.txt.swp”;再次意外退出后,将会产生名为“.file.txt.swo”的交换文件;而第三次产生的交换文件则为“.file.txt.swn”;依此类推。
关于这个,我们可以使用xql7的tools扫描下,虽然写的不是很好,有时间改进下…
发现敏感文件,访问之,提示404…
误报严重啊,其实是工具的规则问题..
果断手工找到swp备份地址
curl访问输出之…
得到flag
换头大作战
打开后一个输入框,随意输入
提示
request method is error.I think POST is better
使用hackbar的post提交后提示
emmm,只能改xff了
唉..继续改..
呵,B站,看来出题人也是个人才..
看到了admin=0,随手改为1
提交后,flag到手..
very easy web干巴爹
");
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] === "vidar")
{
echo $flag;
}
highlight_file(__FILE__);
?>
代码审计啦..
一开始看到strpos和urldecode还以为是数组加二次编码,后来才发现用不到..
大体思路如下:
使用GET方式接收id的参数值与vidar进行比较,如果相同则输出“干巴爹”,若不同‘
则进行url解码,再与vidar进行比较,相同则输出flag
看似是有逻辑问题的,但是,在php中get接收参数时默认会进行一次url解码,然后urlcode
又会进行一次解码,所以我们只需要对vidar中的一个字母进行两次编码即可,
最后的payload如下:
?id=%25%37%36idar
can u find me?
为什么不问问神奇的十二姑娘和她的小伙伴呢
既然这么说了,那就f12
发现f12.php,访问之提示:
yeah!you find the gate
but can you find the password?
please post password to me! I will open the gate for you!
刷新页面在请求里发现password
hackbar提交之,出现click me to get flag
点击提示
aoh,your speed is sososo fast,the flag must have been left in somewhere
感觉像是302跳转,bp抓包查看
得到flag
misc
Hidden Image in LSB
给你脚本了,跑一下就出来了..
送分题..
有个神器叫 stegsolve,利用它可以直接提取本题 flag
打字机
两张图,对照得出flag
Broken Chest
一个压缩包,7z打开失败,扫描提示不是压缩包,binwalk提取发现文件尾,以及
S0mETh1ng_U5efuL
010 Editor打开发现缺少文件头,补齐,打开提示密码,尝试伪加密失败,将得到
的密码输入,得到flag
无字天书
一个数据包分析..
http中下载压缩包,密码不全,
然后不会了…
Level - Week 2
质量直接上一层啊,这代码审计做的我哦…
流下来了没有技术的泪水.jpg
web
easy_php
代码审计..
打开网页,标题处显示robots信息,访问得到/img/index.php这个路径
访问得到如下代码
思路很明确,文件包含,绕过../去访问flag.php,str_replace有漏洞,….//或者…/.
/都可以绕过,然后伪协议读源码
payload如下:
php trick
很单纯的代码审计加ssrf(可能不太准确)
打开后
没什么难的依次绕过就行了..
就行了..
行了..
了.
推荐down下来在本地做,不然容易乱…
先上payload:
首先两个字符串不等、md5值相等,使用md5碰撞即可,再往下使用!==进行判断,使用数组或者url编码的形式绕过,接着str5里面不能有H_game,使用.绕过,这是php特性,然后str5不为数字且大于999999999,可以使用数组、%20、%00、1a进行绕过,然后下面其实可以说是一个ssrf,构造url参数,里面需要有www.baidu.com ,http,还记得前面的admin.php吗?我们可以获取他的值,因为访问后知道他需要127.0.0.1访问,使用十六进制构造,这是ssrf的基操,然后得到admin的源码,在使用admin.php中的filename进行读取flag.php的内容,获取到flag
Level - Week 3
越来越不会…
web
BabyXss
开局一个框,后期全靠fuzz,本来是想直接fuzz的,可是fuzz出来的几个发现不能用,于是手工构造payload
PC9kaXY+PHNjcmlwdCBzcmM9InhzcundefinedundefinedwNaNAiPjwvc2NyPHNjcmlwdD5pcHQ+
ps:自行base64解码一些,不然博客样式会出问题
验证码使用脚本跑:
#!/usr/bin/env python
import hashlib
def md5(s):
return hashlib.md5(s).hexdigest()
for i in range(1, 9999999):
if md5(str(i)).startswith('00d9'):
print i
sqli-1
一个简单的md5验证。
提交正确的code参数后得到提示 sql error。
同时提交一个id参数得到回显。
然后测试即可,
sqli-2
盲注版本,由于只会告诉你sql语句是否执行,所以bool盲注显然不行。
可以使用时间盲注
Payload :
1 and if((1=2),exp(999999999),1)#
基础渗透
首先存在文件包含
然后
在messge_id处进行注入。
我们先随意上传一张图片,让他生成一个文件名。
通过python脚本,进行注入得到文件名。
Ps:注入时需要有留言存在,所以编写脚本时每次注入前先进行留言。
token会失效,所以每次注入前获取一次最新的token。
文件包含处强制拼接了php后缀
将一句话木马文件index.php压缩成一个zip,抓包修改type为 image/png将zip文件上传。然后利用phar协议包含文件getshell。
?action=phar://./img/avatar/xxxxx.png/index