攻防世界题解

  1. 攻防世界 Web
    1. 前言
    2. view_source
    3. get_post
    4. robots
    5. backup
    6. cookie
    7. disabled_button
    8. simple_js
    9. xff_referer
    10. weak_auth
    11. webshell
    12. command_execution
    13. simple_php

攻防世界 Web

前言

攻防世界的题目真的蛮好的,以题代点,通过题目把一个一个基础知识展开,因此在做题的时候顺便记录,既是wp也是基础知识的记录吧

view_source

题目:

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

查看源代码可以右键“查看源代码”/“检查”
或者直接F12

这里右键不了就F12

然后就可以看到flag了

虽然不知道如何实现不可以右键。。。

get_post

题目:

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

协会的推文有说过
打开burp和Firefox,拦截

send to repeater

get a=1

我刚开始直接在最后面加a=1。。。然后不行

然后就去Google Get的格式然后大概在知乎找到了。。。大概。。。
我觉得我对get和post也有很多误解。。。
然后理论上应该是:

GET /http://111.198.29.45:44641/?a=1 HTTP/1.1

然而实际上。。


实际上404了。。。

继续摸索。。。
不敢在raw里面直接改了。。。
去Param上add
add
然后go

然后跳出来要求post b=2(那个中文显示出来爆炸了。。。google也解决不了。。。改天请教一下大佬)

这里注意到raw里面最头上的那一栏

GET /?a=1 HTTP/1.1

???居然没有网址。。。

然后继续post


然而我在raw里面改又炸了。。。他不跳转。。。那就只能继续在param里面改了。。

这里注意知乎给的格式里面,post参数在下面,所以b的type要选body
然后go
得到flag

这里应该注意到:和刚刚直接修改相比,多了一行这个:

Content-Type: application/x-www-form-urlencoded

然后去Google:

服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。

robots

题目:

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

提到了robots协议,于是去wiki上面找

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。注意robots.txt是用字符串比较来确定是否获取URL,所以目录末尾有与没有斜杠“/”表示的是不同的URL。

“robot放在网站根目录下.txt”==》在网址后加“/robots.txt”

然后再访问/f1ag_1s_h3re.php

得到flag

backup

常见的备份文件后缀名有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.index.php.swp
index.php.swp
index.php.bak
.index.php~
index.php.bak_Edietplus
index.php.~
index.php.~1~
index.php
index.php~
index.php.rar
index.php.zip
index.php.7z
index.php.tar.gz
www.zip
www.rar
www.zip
www.7z
www.tar.gz
www.tar
web.zip
web.rar
web.zip
web.7z
web.tar.gz
web.tar
wwwroot.rar
web.rar

打开下载的php,找到flag
或者按照官方writeup 使用dirsearch

然后就可以检索到index.php.bak
又学会了一个工具

题目:

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

继续Google

一个HTTP cookie的(也称为网络Cookie,互联网的cookie,浏览器cookie,或者simply cookie)是一小块从发送的数据的网站用户的并存储在用户的计算机上的网页浏览器,而用户浏览。Cookies被设计为网站记住状态信息(例如在线商店的购物车中添加的商品)或记录用户的浏览活动(包括单击特定按钮,登录)的可靠机制。,或记录过去访问过的页面)。它们还可以用于记住用户先前在表单字段中输入的任意信息,例如名称,地址,密码和信用卡号。
(谷歌翻译有点鬼畜)

用火狐打开,找到“存储”,可以看到“look-here=cookie.php”
cookie

那就继续访问url/cookie.php

see the http response
然后它让你查看http响应

然后点开“网络”可以看到数据包,点开可以在右侧看到flag

disabled_button

题目:

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

这道题。。。hacker game2019考过了

重点是“前端知识”,所以继续Google

Web前端: 顾名思义是来做Web的前端的。这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
Web后端:后端更多的是与数据库进行交互以处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等

前端开发和后台开发是有区别的,工作的内容和负责的东西是完全的不同的,以下以网站的开发为例。
1、前端开发
前端开发现在一般指的就是web前端开发工程师,其负责是网站前端页面也就是网页的页面开发,简单的说网站前端负责是东西是网站用户可见的东西,如网页上的特效、网页的布局、图片、视频等内容。网站前端工程师的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并和后端开发工程师配合做网页的数据显示和交互。
2、后端开发
后端开发一般也叫做后台,其负责是网站后台逻辑的设计和实现还有用户及网站的数据的保存和读取。比如一般网站都是有用户注册和登录的,用户的注册的信息通过前端发送给后端,后端将其保存在数据库中,用户登录网站的时候,后端需要通过用户输入的用户名和密码是否与数据库中的一致来判断用户是否有权限登录,这是后台开发中的一个最简单的功能。

———————————————— 版权声明:本文为CSDN博主「是世博呀」的原创文章,遵循 CC 4.0 BY-SA
版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yinghuo110/article/details/79057513

对了,之前没有声明的引用都是Wikipedia的。

好了打开题目:
但是居然没有<button>标签

我这里选择把disable改成able

(也不知道是不是该这么改,html没学好。。留下了不学无术的泪水)

改了之后就可以了

得到flag

simple_js

题目:

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

打开题目之后发现让你输密码,题目说一直输不对,那就随便填
打开之后让你填密码

然后果然错了
题目名字是“simple js”
那应该和JavaScript有关。
查看源代码
源代码
看到了一个脚本。。。然后我又留下了不学无术的泪水,这就是我为什么说现在感觉什么都要学。。。

先放放。。。

xff_referer

题目:

X老师告诉小宁其实xff和referer是可以伪造的。

看到题目的那一刻我就知道我该google了。。。

X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。

如果没有XFF或者另外一种相似的技术,所有通过代理服务器的连接只会显示代理服务器的IP地址,而非连接发起的原始IP地址,这样的代理服务器实际上充当了匿名服务提供者的角色,如果连接的原始IP地址不可得,恶意访问的检测与预防的难度将大大增加。XFF的有效性依赖于代理服务器提供的连接原始IP地址的真实性,因此,XFF的有效使用应该保证代理服务器是可信的,比如可以通过创建可信服务器白名单的方式。

这一HTTP头一般格式如下:

X-Forwarded-For: client1, proxy1, proxy2

其中的值通过一个 逗号+空格 把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。

大概意思就是xff是告诉别人你是哪个ip来的

The HTTP referer (a misspelling of referrer[1]) is an optional HTTP header field that identifies the address of the webpage (i.e. the URI or IRI) which is linked to the resource being requested. By checking the referrer, the new webpage can see where the request originated.

(由于谷歌翻译太渣了就不贴中文了)大概意思就是告诉别人你是从哪个网址跳过来的

然后我们打开题目:

因为要伪造xff和referer,所以我们再打开神器burp suite
拦截

send to repeater

根据格式伪造

然后被告知必须来自Google

继续伪造,得到响应

得到flag: cyberpeace{9ccd9193bdde005e294e3e65cbeb7271}

weak_auth

题目:

小宁写了一个登陆验证页面,随手就设了一个密码。

根据提示是一个弱密码,又到了根据wp学习burp的时间

打开题目

我觉得直接点login没毛病

根据提示继续login

然后F12

然后我就懵逼了,library? 我要图书馆干嘛?
。。。。

然后根据wp发现是爆破字典

接着打开burp和Firefox

先把拦截关了

开拦截 点login

send to intruder

在password处add

load library

然后右上角 start attack

在length处筛选

然后输入密码得到flag

webshell

题目:

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

确认过眼神,是要google的题目。。

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。(摘自https://blog.csdn.net/bcbobo21cn/article/details/53465068)

我刚开始以为小宁百度了php的一句话,结果发现是百度了:“php一句话”。。。
然后这个东西是小马拉大马之后出现的一句话木马。
打开题目:

天真的我首先打开了url/index.php
然而。。。。并没有什么用。。
难道是检查里面的内容不一样?
然后我又好奇的点开了检查。。。
不一样个鬼啊啊

打开官方的writeup。。。然后知道了下面的

?php @eval($_POST[‘shell’]);?

就是小宁上传的php一句话木马
然后根据wp下载蚁剑,连接到服务器。。。
感觉自己没学到啥。。。难道是我的学习方式不对?
。。。。。。。

command_execution

题目:

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

(原来小宁是个女的)

Ping:

ping是一种电脑网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。

WAF:

A web application firewall (or WAF) filters, monitors, and blocks HTTP traffic to and from a web application. A WAF is differentiated from a regular firewall in that a WAF is able to filter the content of specific web applications while regular firewalls serve as a safety gate between servers. By inspecting HTTP traffic, it can prevent attacks stemming from web application security flaws, such as SQL injection, cross-site scripting (XSS), file inclusion, and security misconfigurations.

然后又google了一下“ping+waf”,然后出来了这个:

哼,你以为你告诉我命令注入我就会了吗。。。。。
这显然是不可能的。。

Google加上看writeup了半个多小时,大概懂了命令注入的意思:
Ping是一个命令,在这个命令后加上“|”或“&&”之类的符号来执行另一个命令,就是所谓的命令拼接或者命令注入。

先找到flag的位置

然后再抓出来

simple_php

题目:

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

经过上次的simple_js之后,看到这个题目就瑟瑟发抖。。。

writeup说是考查php弱类型,因为没有学,再次留下了不学无术的泪水。。。。。。

文章标题:攻防世界题解

本文作者:Kyle

发布时间:2019-10-22, 19:27:58

最后更新:2020-09-26, 10:50:11

原始链接:https://silver2835.github.io/2019/10/22/%E6%94%BB%E9%98%B2%E4%B8%96%E7%95%8C%E9%A2%98%E8%A7%A3/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录