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,2019攻防世界web新手区

再次点击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。

2019攻防世界web新手区

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文件

2019攻防世界web新手区

然后我们构造查看home下flag.txt文件内容的命令:target=127.0.0.1 | cat ../../../home/flag.txt,即可输出flag:

2019攻防世界web新手区

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)

上一篇:关于java的格式输出控制


下一篇:解迷宫的C++的未完善编程代码........请大神们帮忙改善下.........