攻防世界 WEB 新手练习区 答题(1-12题解)

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了攻防世界 WEB 新手练习区 答题(1-12题解)相关的知识,希望对你有一定的参考价值。

传送门:https://adworld.xctf.org.cn/task/

1、view_source

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

  • 右键查看网页源代码 ,或者使用快捷键打开ChromeDev即可看到被注释的flag,右键编辑html元素即可获取flag。
cyberpeace{884388a9ea5b8219a33102c5cc91f5fe}

2、robots

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

  • robots协议是网站跟爬虫间的协议 ,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,一般站点根目录下都会放置robots.txt,爬虫爬取前会检查这个文件。
  • 所以打开网站,手动进入http://111.200.241.244:54968/robots.txt,提示f1ag_1s_h3re.php,然后再打开http://111.200.241.244:54968/f1ag_1s_h3re.php即可找到flag。
cyberpeace{4a3de60e31b26949ee10765ac9848210}

3、backup

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

  • 打开发现:你知道index.php的备份文件名吗?
  • 常见的备份文件后缀名为.bak
  • 所以输入http://111.200.241.244:56571/index.php.bak即可下载带有flag的php文件
Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}

4、cookie

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

  • Cookie是保存在客户端的纯文本文件,比如txt文件。是一种用于服务端进行身份验证的“临时身份证” ,requests的时候如果header中带有cookie字段,即可以免去登录等操作。Cookie一般是加密的。
  • 我们用burp来查看该网址的cookie值,发现有个cookite.php文件,尝试打开。
  • 我们打开开发者工具查看http response,发现flag。


cyberpeace{b8fe451f83e4d6da0bbe42f8391d7d9b}

5、disabled_button

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

  • 打开开发者工具,发现disabled 属性规定应该禁用 input 元素 ,右键编辑html,删掉disable=,点击按钮即可获得flag。
cyberpeace{d3f702207f00313583f8da0d9c92350e}

6、weak_auth

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

  • 进入显示一个登录界面,应该是弱口令,使用暴力破解 。暴力破解适合题目类型:登录密码较为简单,且不会限制登录次数。
  • 随便登录了一下提示账号为admin,然后密码用brup爆破,根据字节长度不同(434或437),就可知道密码,关于密码你可能需要一个字典
  • 发送给攻击器,选择单点爆破,位置设置在密码的位置。有效负载中添加1项以及字典,然后开始爆破,根据两种不同的返回长度可以得出密码为123456,然后登陆即可获得flag




cyberpeace{8b9315c850d7f771c642f48eeda5d2df}

7、simple_php

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

  • 进入显示一段php代码,if($a==0 and $a){,因为php是弱类型语言,所以构造命令:http://111.200.241.244:49567/?a=00a&&b=12345b即可获得flag。
  • 本题考php是弱类型语言 。对于弱类型语言,“1”+2 = ‘12’,对于强类型"1"+2会报错。弱类型语言指的是可以隐式转换的语言。
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

8、get_post

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

  • http的两种请求方式是get和post ,get的请求方式是通过在网址后面加上“?a=1&b=2”,例如:https://adworld.xctf.org.cn/task/answer?a=1&b=2,post传参的话通过hackbug。
  • 现在hackbug已经开始收费了,所以需要自己找收费前的版本离线安装。
flag=cyberpeace{7fbfccb395244ac5e90120197e55396c}

9、xff_referer

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

  • xff 是http的拓展头部,作用是使Web服务器获取访问用户的IP真实地址 (可伪造)。由于很多用户通过代理服务器进行访问,服务器只能获取代理服务器的IP地址,而xff的作用在于记录用户的真实IP。通常可以直接通过修改http头中的X-Forwarded-For字段来仿造请求的最终ip。
  • referer 是http的拓展头部,作用是记录当前请求页面的来源页面的地址。 服务器使用referer确认访问来源,如果referer内容不符合要求,服务器可以拦截或者重定向请求。
  • 于是用brup抓包,在响应中看到必须来自谷歌,于是再次增加一条Referer: https://www.google.com,即可获得flag。



cyberpeace{99bcc739699d2a4acddd89257e9121f3}

10、webshell

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

  • 题目如名,Webshell是使用的一种脚本,获得服务器的执行操作权限进入后门的渗透工具
  • 对于这道题我们用菜刀工具,进入后台即可获取flag

cyberpeace{c0d7f98e9d03e7d5fb8490dd453a9a57}

11、command_execution

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

  • 命令执行漏洞: 符号&、|、||可以作为命令连接符 ,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。
  • 打开发现一个PING的页面,先试试,ping本地,ping 127.0.0.1发现可以ping通。
    然后我们夹杂着命令ls去操作:127.0.0.1 && ls, 发现可以执行。
  • 然后我们用find命令找到所有的txt文本,再用cat打开flag.txt即可。
    127.0.0.1 && find / -name “*.txt”
    127.0.0.1 && cat /home/flag.txt
cyberpeace{1b6e77ff92c0a41ed3e1bd20373d65d4}

12、simple_js

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

  • 掌握有关js的知识 ,能够读懂代码。
  • F12查看网页源代码,找到js函数部分,发现随便输入什么都会输出pass="70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"对应的字符,用python转为字符,得到该字符串为: FAUX PASSWORD HAHA,正好是提示错误的字符串。
  • 发现下面有个16进制字符串,\\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
    用python分割后转int,再chr输出字符即可得到786OsErtk12,最后套上flag格式即可。
string = "\\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"
s = string.split(",")
res = ""
for i in s:
    i = chr(int(i))
    res += i
print(res)
Cyberpeace{786OsErtk12}

以上是关于攻防世界 WEB 新手练习区 答题(1-12题解)的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界 CRYPTO 新手练习区 答题(1-12题解)

攻防世界 mobile 安卓移动端简单题练习区 答题(1-12题解)

攻防世界 pwn 二进制漏洞简单题练习区 答题(1-10题解)

攻防世界pwn之新手练习区

攻防世界 reverse 新手练习区

攻防世界WEB练习区(backupcookiedisabled_button)