攻防世界Web新手专区-Write Up

参考资料:

链接一链接二

0x001 view_source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

解题思路:

由于禁用了鼠标右键,但是可以直接f12或者使用web开发者就可以看到源码或地址栏的http前加上view-source

攻防世界Web新手专区-Write Up

0x002 robots

题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

robots:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。该文件默认在网站根目录下。

解题思路:

因此直接访问该地址下的robots.txt文件看到flag文件后,访问该文件即可。

攻防世界Web新手专区-Write Up

攻防世界Web新手专区-Write Up

即可得到flag

0x003 backup

题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

解题思路:

index.php的备份文件名是index.php.bak,在地址栏后方输入/index.php.bak 访问即可。

攻防世界Web新手专区-Write Up

攻防世界Web新手专区-Write Up

打开得到flag

0x004 cookie

题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’

解题思路:

首先访问网页,我用的是火狐浏览器。然后F12查看其网络里的cookie发现让访问cookie.php

于是我们在地址栏后方输入/cookie.php

攻防世界Web新手专区-Write Up

访问后提示See the http response

这里我们可以用Bp抓包

也可以用火狐浏览器 我们先关掉F12 然后刷新下网页再按F12

找到cookie.php那一行就会找到flag

攻防世界Web新手专区-Write Up

0x005 disabled_button

题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

解题思路:

将按钮button的默认值disable删掉或改为able

攻防世界Web新手专区-Write Up

攻防世界Web新手专区-Write Up

0x006 weak_auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码

解题思路:

访问页面发现是个登陆页面。我们需要用到BP进行**

首先点击login 提示用户名为admin。

攻防世界Web新手专区-Write Up

先输入用户名admin,然后密码随便输入 进行抓包

攻防世界Web新手专区-Write Up

右键空白处选择Send to Intruder

攻防世界Web新手专区-Write Up

然后我们点击Intruder这个选项卡 进入以后点第二个。因为我们知道用户名为admin所以只需要对密码进行**。于是选中admin点击右边的clear 清除那个字符 只保留密码的

攻防世界Web新手专区-Write Up

然后点击第三个选项卡 进行**的弱口令设置。可以点击Load加载弱口令也可以自己输入添加。在下方框里输入弱口令点击add即可

攻防世界Web新手专区-Write Up

输入完成以后返回第二个选项卡 点击右边的Start开始进行**

攻防世界Web新手专区-Write Up

最后发现123456的长度与其他的不同 所以123456是密码。

输入admin和123456登陆得到flag

攻防世界Web新手专区-Write Up

0x007 simple_php

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

解题思路:

解法一:

这个题是代码审计

攻防世界Web新手专区-Write Up

根据这个PHP代码我们了解到需要以Get的方式传入两个参数a和b。

阅读代码发现需要同时满足a==0且if a为真,b不是数字且b>1234才会返回flag.

由以上结论可以得出url后加/?a=0a&b=12345a

关于a和b的取值问题如下解释php手册里面写道:当一个字符串当作一个数值来取值,其结果和类型如下:如果该字符串没有包含’.’,’e’,’E’并且其数值值在整形的范围之内,该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0如:“0e11”=="0e22"比较的时候,会将这类字符串识别为科学技术法的数字,所以0的多少次方都是零。“A”==0比较的时候,会将A转化成数值,强制转化,由于A是字符串,转化的结果是0自然和0相等。“1A”==1比较的时候会将1A转化成为数值1;但“A1“==1结果却为false,也就是"A1"转化成了0

解法二:

a参数的要求 a必须等于0且a为真

b参数的要求 b不能为数字且b大于1234

攻防世界Web新手专区-Write Up

攻防世界Web新手专区-Write Up

0x008 get_post

题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

解题思路:

Get和POST的资料:https://www.w3school.com.cn/tags/html_ref_httpmethods.asp

攻防世界Web新手专区-Write Up

我们需要先用get方法提交一个名为a值为1的变量

在url后加/?a=1

攻防世界Web新手专区-Write Up

然后提示说要用POST方式随便提交一个名位b,值为2的变量

这里用到一个插件Hackbar。勾选Post data 在下方框里输入b=2 运行即可得到flag

攻防世界Web新手专区-Write Up

0x009 xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。

什么是XFF?

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。

在一些大型网站中,来自用户的HTTP请求会经过反向代理服务器的转发,此时,服务器收到的Remote Address地址就是反向代理服务器的地址。在这样的情况下,用户的真实IP地址将被丢失,因此有了HTTP扩展头部X-Forward-For。当反向代理服务器转发用户的HTTP请求时,需要将用户的真实IP地址写入到X-Forward-For中,以便后端服务能够使用。由于X-Forward-For是可修改的,所以X-Forward-For中的地址在某种程度上不可信

解题思路:

访问容器提示: 攻防世界Web新手专区-Write Up

首先,我们使用火狐浏览器的插件X-Forwarded-For Header来修改ip

攻防世界Web新手专区-Write Up

修改好后刷新一下页面发现提示

攻防世界Web新手专区-Write Up

所以我们需要用Bp来修改一下。首先抓到包然后右键发送到Repeater

攻防世界Web新手专区-Write Up

点击Repeater选项卡,选择第一个或者第二个选项卡添加以下内容。

添加完毕后点击GO即可得到flag

Referer: https://www.google.com

X-Forwarded-For: 123.123.123.123

攻防世界Web新手专区-Write Up

0x010 webshell

题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。

解题思路:

攻防世界Web新手专区-Write Up

访问页面发现直接给出了经典的PHP一句话木马

我们用中国蚁剑来链接这个木马

攻防世界Web新手专区-Write Up

输入URL地址然后输入连接密码shell然后点击添加即可

双击进入发现有flag.txt

攻防世界Web新手专区-Write Up

双击进去得到flag

攻防世界Web新手专区-Write Up

0x011 command_execution

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

War的意思是防火墙,本题没有防火墙

解题思路:

先查找本地ip试试127.0.0.1.果然有用

注:过后了解到格式其实应该这个样ping -c 3 127.0.0.1

攻防世界Web新手专区-Write Up

然后我们用ls命令来获取当前目录

&&符号执行多个命令

攻防世界Web新手专区-Write Up

发现有用,我们再试着寻找txt”文件,输入命令

127.0.0.1 &&find / -name "*.txt"

攻防世界Web新手专区-Write Up

果然将所有的txt文件都显示了出来 我们发现第一个就是flag.txt

我们试着用cat命令将里面的内容打印出来

127.0.0.1  && cat /home/flag.txt

攻防世界Web新手专区-Write Up

得到flag

补充:

命令执行漏洞是什么?

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

比如题目中,直接把用户输入的参数不经过过滤直接放在ping命令之后,而恶意攻击者可以在输入的参数中用&&截断,而执行下一个恶意命令

常见连接符

;A;B 先执行A,再执行B

& A&B 简单拼接,A B之间无制约关系

| A|B 显示B的执行结果

&& A&&B A执行成功,然后才会执行B

|| A||B A执行失败,然后才会执行B

0x012 simple_js

题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

解题思路:

首先进入容器页面以后发现让输入密码,由于我们并不知道密码直接点击确定两次确定以后就一片空白,然后我们F12查看源代码。发现有一串奇怪的数

攻防世界Web新手专区-Write Up

\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

感觉像是一个十六进制我们用在线网址解密一下得到:

55,56,54,79,115,69,114,116,107,49,50

看起来像是ACSII编码 我们再转换一下。

如果没有工具可以利用在线网址转换。

攻防世界Web新手专区-Write Up

786OsErtk12

感觉像是flag结合之前给出的格式提交一下,成功。