攻防世界新手web题
(一)view-source
获取在线场景后,进入,这里有几种方法做题。
第一种 :进入后,按F12打开控制器可以找到flag。
第二种 :brupsuit抓包,在浏览器请求时抓取flag。
第三种 :查看网页源代码。
(二)get_post
这里我用的是火狐浏览器解决。
打开在线场景,在url后面加上 ?a=2
,接着出现post内容,在浏览器搜索框下面打开Post data ,输入b=4
出现flag。
(三)backup
index.php的备份文件名:如果网站存在备份文件,常见的备份文件后缀名有:“.git” 、“.svn”、“ .swp”“.~”、“.bak”、“.bash_history”、“.bkf”
依次输入后缀名尝试。
在输入index.php后页面没反应,然后依次尝试,发现输入.bak时提示下载.bak文件。下载打开发现flag。
(四)robots
进入后发现页面空白,然后第一感觉查看网页源代码,发现
然后就百度了一下robots,
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
那这样就直接在网站url后面加一个robots.txt
发现了一个名字为
接着再次搜索url+flag_1s_h3re.php
,得到flag。
(五)cookie
Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。
打开题目,这题我知道两种解题方式。
第一种:打开在线场景,F12打开控制器,发现有一个look-here的cookie值为cookie.php。直接url后加cookie.php
搜索发现让我们看http response
,然后在http响应包里面发现头文件包含flag的信息。
第二种:brupsuit抓包。步骤和第一种差不多。
抓包后发现一个look-here的值,然后搜索url+cookie.php
,接着抓包,在其中发现flag。
(六)disabled button
打开题目发现有一个flag按钮,这一题我当时是鼠标右键查看网页源代码,发现有个post方式。
于是就直接postauth=flag
得出flag。
在看了大佬们的讨论后,发现了另外一种方式。
F12打开控制器,里面的html格式里有一个disable,选择之后删除,发现flag按钮可以点了,得出了flag。
(七)weak auth
打开之后给了一个登录的界面
刚开始想试一下绕过的,发现提示了用户名是admin
,然后就随手来了一个密码123456
,突然就正确了,得到了flag。amazing!
然后这道题做的话,可以用抓包来做,随便输入一个账户密码,brupsuit抓到后就对账户密码进行爆破,最后得到一个长度不一样的就是正确的,字典的话可以自己写一个,小弟知识有限就不在这里出丑了。
(八)Ping
题目提示小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
打开之后,直接ping了一下本机IP地址。ping通过了,然后接着顺带扫了一下带有**“.txt”** 的文件
127.0.0.1|find / -name "*.txt"
得到了
然后就查看flag文件的内容
127.0.0.1|cat /home/flag.txt
得到
127.0.0.1 :
127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。
(九)simple_php
听名字就知道是php方面简单的知识了,打开一看,果然不难,新手就是爽。
这个题考察的是PHP的函数绕过
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
打开是这样的,然后就百度一下is_number()
函数,发现是判断目标是否为数字,是的话输出true 不是的话输出false
.is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回
FALSE,且php中弱类型比较时,会使(‘1234a’ == 1234)为真
而题中所给代码首先需要满足 $a==0 $a两个条件
php中的弱类型比较会使’0dsafd’为真,所以输入这个时会输出flag1。
而输入?a=0dsafd&b=1235dcas
则会出现flag
(十)xff_referer
刚拿到题目有点摸不着头脑,不知道怎么下手。然后本着习惯就先按了F12,我先按为敬了。然后发现自己好菜,就问了我万能的师傅-度娘。了解了一下 xff和referer。发现
用我的菜鸟观来说,xff就是用来构造IP地址,referer就是让你构造的来源IP相应的来源浏览器,规定好像是使用www.google.com
这样就好办了,直接在控制窗口网络页面重新发送一个请求,加入
X-Forwarded-For:123.123.123.123
Referer:https://www.google.com
然后发送请求,在HTML页面发现flag。
还有另外一种解法就是拿出咱们的神器brupsuit 来进行抓包。原理都是一样的。
进行抓包然后发送到referer,添加上面的玩意,然后GO 发送,在同样的地方拿到了一样的flag。就很nice。
(十一)webshell
webshell,打开题目发现只有一个提示
第一时间想到了post
一个shell=flag
试一下。发现并没有什么反应。然后联想题目提示PHP一句话。又想到了webshell后门。于是拿出了中国菜刀这个神器。
直接添加url,密码shell
,得到flag。
(十二)simple_js
这个题目完全的标题欺骗萌新,刚拿到就一直在研究其中的js代码。因为刚接触,就研究了一会才发现ji代码在这个题目中毫无用处。
查看页面源代码,发现一串子疑似十六进制的字符。猜测是flag。就进行转换。
这里用的脚本,贪方便,就网上找了一个,接下来会研究python脚本的。
a="\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(a)
b=a.split(",")
c=""
for i in b:
i=chr(int(i))
c+=i
print(c)
运行得到flag。
再加上flag格式提交即可。