2016第七季极客大挑战web部分write up

2016第七季极客大挑战web部分write up


0x01 web_1

http://web.sycsec.com/a59817b3061870c0/

直接F12看返回头

0x02 web_2

http://web.sycsec.com/ce9b3a20d290fbc8/

看cookie有root和whoami两项,直接改为root:1,whoami:admin%40geekgame

0x03 Social Engineering

http://web.sycsec.com/36da077bd47665ae/

自己体悟0.0

0x04 sqli1

http://web.sycsec.com/d03e52c272e42e7c/

给了tip:sycid,注入点在此测试为回显注入,直接搞

0x05 sqli2

http://web.sycsec.com/a2274e0e500459f7/

查看源码发现可疑处debug=0

手工注入吧少年

0x06 127.0.0.x

http://game.sycsec.com:50080/69e57206e1bc2a23/

已暴打出题人!
考点就是XFF只不过每次x会变然后返回相同数量的滴滴

e+++++然后出题人告诉我直接用53即可,因为数据都在53附近

0x07 php is fun

http://game.sycsec.com:50084/

不愧是l3m0n师傅出的题!很清真

 -1){
die('SYCwaf!');
}

if(strpos($url,'http://127.0.0.1/') === 0){
file_put_contents($path, file_get_contents($url));
echo "console.log($path update successed!)";
}else{
echo "Hello.Geeker";
}
?>

二次利用file_put_contents()函数写入shell注意urlencode问题
下面给出例子payload:
?file=http%3A%2f%2f127.0.0.1%2findex.php%3Ffile%3Dhttp%3A%2f%2f127.0.0.1%2f%26path%3D%3C%3Fphp%2520phpinfo%28%29%3B%3F%3E&path=b.php

0x08 人生苦短

http://web.sycsec.com/40a9ddba689f8200/
狗师傅曾在床上和皓宝宝攀谈良久,问题集中在:

32+64+py=10(次),py=?

答对了就给你和狗师傅交流人生的机会:
还有这种套路的web题(黑人问号)!!!

计算机按按出-86填表单提交得到一串特长的类似base64的码然后由题意32+64可以想到10次32+64的编码,py交易一下直接得flag

0x09 狗师傅的计算器

链接挂了,不写了,印象中有brain fuck和另外一种编码……解码后就能找到思路了

0x10 上传

http://game.sycsec.com:50081/

(1)判断后缀,思路很偏自己去fuzz
(2)利用js的php格式+大小写绕过

0x11 你是人间四月天

http://game.sycsec.com:50080/9392d16bb9fbda00/
考点:http头中的Host检测。

tips:172.17.0.3是百度的IP,你相信我吗

修改host项为www.baidu.com
即可!

0x12 撸啊撸

http://lol.sycsec.com

一开始一脸懵笔,那就想直接sqlmap先试一下万一就出来了呢!
然后就直接找到了注入点(我真帅!)
后来放了 hint是文件下载…………然后代码审计??excuse me?好吧于是拿到代码后一直找除了sql注入以外的洞,我擦勒????然后发现原来sql注入不是出题人不小心写的就是考点。既然确定了,那就直接写注入shell吧。

0x013 皓宝宝的留言板

http://web.sycsec.com/42e1f42bcf3c0cfc/

真的不会XSS啊!!!!!!!!!

0x14 only number never lies to you

http://game.sycsec.com:50082/

直接贴爆破代码:

import urllib
t = 100
num = 16110201120800
url = "http://game.sycsec.com:50082/"
f=open(r'F:/1.txt','w')
for item in range(t):
    num =num+1
    url2 = url + str(num)+ '/'
    html = urllib.urlopen(url2)
    status=html.code
    if status == 200:
        print "find OK!" + str(num)
        f.write(html.read()+str(num))
        break
    else:
        print "not find!" + str(num)

f.close()

得到一个目录发现是上传,搞吧少年!

考点.user.ini文件

0x15 pentest(I)

0x16 pentest(II)

放两题渗透题,成信表哥们真是看得起!

你可能感兴趣的:(CTF)