前言
第一次ak了web…是入门的week1,对,像我这种萌新最喜欢做这种题(手动滑稽脸);
正文
Web
谁吃了我的flag
题目提示:vim,没好好关机,知道了是Linux的vim异常退出;
于是尝试访问.index.html.swp
,成功下载swp文件,拖进十六进制编辑器查看得到flag:
换头大作战
如下界面:
随便输入了内容提交得到提示:
提示需要POST,那就hackbar直接post一个值:
又来提示需要本地登录,那就加上X-Forwarded-For
的请求头:
提示需要修改User-Agent
,那就直接修改:
又要求the requests should referer from www.bilibili.com
,继续添加:
要求是管理员登录…有点无从下手,想了一下既然是换头大作战…查看请求头发现Cookie里有admin=0关键字,索性直接修改为1,payload如下:
得到flag:
very easy web
代码审计初体验:
<?php
error_reporting(0);
include("flag.php");
if(strpos("vidar",$_GET['id'])!==FALSE)
die("<p>干巴爹</p>");
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] === "vidar")
{
echo $flag;
}
highlight_file(__FILE__);
?>
非常简单的url二次编码绕过,GET进来的id已经被urldecode一次了,代码意思是继续decode得到vidar
;
payload:http://120.78.184.111:8080/week1/very_ez/index.php?id=%2576%2569%2564%2561%2572
can u find me?
查看源代码有提示:
查看响应头:
于是直接post一个password过去:
点进去…说太快了:
那就抓个包试试…得到flag:
Crypto
Mix
Description:
–…/…-/…-/-…/–…/…–/…/…-./-…/-…/-…/…-./–…/----./…-/…-/–…/.----/-…/-…/–…/-…/-…/…—/…/.----/-…/-…/…–/…-/…–/-----/-…/…/–…/-… So easy
看起来就是摩斯密码没错了,找个在线解密即可得到16进制,解码得到字符,凯撒移位后观察关键字母,栅栏移位即可得到flag;
base全家
我就不说了…呆了,解半天也没想到个好办法,python跑一下,既然是base全家桶系列,直接用异常处理即可:
import base64
f=open('cnm.txt','r')
p=f.read()
n=''
step=[]
while True:
try:
n=base64.b16decode(p)
print n
p=n
step.append(16)
continue
except:
pass
try:
n=base64.b32decode(p)
print n
p=n
step.append(32)
continue
except:
pass
try:
n=base64.b64decode(p)
print n
p=n
step.append(64)
continue
except:
pass
break
print step
python渣渣就不班门弄斧了…就是要注意base解码的顺序,必须从16->32->64
,原因是部分base16和base32可以被base64解码…找到有意义的字符串如下:
在线base58解密即可:
hgame{40ca78cde14458da697066eb4cc7daf6}