攻防世界:WEB新手练习区

2023-10-31

题目:https://adworld.xctf.org.cn/challenges/problem-set-index?id=25&rwNmOdr=1678625790128

view_source

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

打开题目,尝试右击,确实无法使用。

题目描述提示查看网页源代码,鼠标右击无法使用,那么我们就可以通过F12来查看网页源代码。

点击查看器,flag赫然出现

cyberpeace{133490b87a6f9725430bde6d8796cb9e}

除了最简单运用F12,我们还可以用bp抓包查看到

这道题的目的应该是让大家初步认识F12的作用,就不去研究其他师傅的WriteUP了。


get_post

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

HTTP 方法

  • GET

  • POST

  • PUT

  • HEAD

  • DELETE

  • PATCH

  • OPTIONS

最常用的两种方法是:GET 和 POST。

GET 方法

GET 用于从指定资源请求数据。

GET 是最常见的 HTTP 方法之一。

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.php?name1=value1&name2=value2

POST 方法

POST 用于将数据发送到服务器来创建/更新资源。

通过 POST 发送到服务器的数据存储在 HTTP 请求的请求主体中:

POST /test/demo_form.php HTTP/1.1

Host: w3school.com.cn

name1=value1&name2=value2

最直接的区别:

  1. GET请求的参数是放在URL里的,POST请求参数是放在请求body里的;

  1. GET请求的URL传参有长度限制,而POST请求没有长度限制;

  1. GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制;


简单了解HTTP的两种请求方法后,我们打开题目

很直接的把提示告诉了我们,按照GET请求方式,我们在URL后加上需求?a=1

页面回显提示再以POST方式提交一个b=2的变量

首先将HackBar下方Post data点击选用

然后在框内输入需求变量b=2

最后点击Execute提交

成功获取到flag

cyberpeace{398854238609715fb0fa1904f0629213}

这时候我们对网址刷新抓个包就可以看见 POST请求参数是在body中的

如果不适用HackBar,通过bp也可以完成

对网页抓包加上需要变量,再改变请求方式

添加需求变量b=2即可获得flag

两种方式各有各的好,HackBar方便解题省去复杂的步骤;bp相对麻烦,但能更直观的对比GET请求和POST请求的不同。


robots

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

知识点补充:robots协议也称爬虫协议、爬虫规则等,是指网站可建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

打开场景,什么东西都没有仅有标签页名robots,那看来就是让我们查看robots.txt文件。

回显结果如上

User-agent: * // 这里的*代表的所有的搜索引擎种类,*是一个通配符

Disallow: f1ag_1s_h3re.php // 这里定义是禁止爬寻f1ag_1s_h3re.php目录

很明显,我们所要的flag就在f1ag_1s_h3re.php文件中,访问f1ag_1s_h3re.php

即可得到flag

cyberpeace{15cfcce7355ef80fa55be8fc8c4d125b}

我们还可以利用dirsearch,扫后台目录

一样可以发现robots.txt文件,之后步骤与上述相同即可获取flag


backup

打开场景入眼就是提示,index.php备份文件名。

直接百度查询index.php备份文件名,得知为index.php.bak

小知识:常见的备份文件后缀名有: .git .svn .swp .svn .~ .bak .bash_history

在URL后加上/index.php.bak回车,跳转一个下载文件

直接打开就直接看见了flag

Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}

除了上网查询index.php备份文件名,我们也可以借助dirsearch扫目录

命令行:python dirsearch.py -u "http://61.147.171.105:53583//" -e php

HTTP状态码200代表请求访问成功

一眼发现bak为备份文件


cookie

打开网页

cookie:指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

直接对网页进行抓包

能看见提示查看cookie.php

在URL后加上/cookie.php访问

再次给了我们提示:查看http响应

对网页再次抓包,这次加上 Response to this request

Do intercept下Response to this request功能可用于对服务端发送过来的信息做修改来欺骗浏览器。

点击Forward可以看见flag:cyberpeace{1e3d7b210e985919e516f9ee380d4cdc}

还可发送到重放模块Repeater

也可以找到flag

解出题目后习惯性看看其他师傅WriteUP,发现甚至可以不需要bp即可解题(tql)

在题目网页右击打开检查(check)

在存储中可以看见Cookie中的内容(学到了)

URL后加上/cookie.php访问

依然对网页进行检查(check),在网络下可以看见http响应头

最后在Date下发现flag。

HTTP响应状态码 200 OK 表明请求已经成功。默认情况下状态码为 200 的响应可以被缓存。

HTTP 响应状态码 404 Not Found 指的是服务器无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理(link rot)页面。

404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 410(Gone)而不是 404。


disabled_button

首先看题目描述提到前端知识,联想到HTML,再提示一个不能按的按钮,结合题目名button很明显是涉及到HTML button标签知识,最后通过disabled提示应该是按钮被禁用了

知识补充

button标签是什么意思:<button> 标签定义一个按钮。

在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处。

打开场景展现内容确实是一个不能点击的按钮

提示也给的很明显,只要能点击flag按钮,应该就能获取到flag。

直接F12对网页进行检查

很明显在body中我们可以看见运用了button标签,但是存在disabled导致button被禁用无法发挥作用,那只要我们编辑文件将disabled=“”删除即可。

现在按钮就可以点击了,点击flag获取flag

cyberpeace{7cf2dcee258bea113e3c011e87850606}

通过form表单代码审计,可以发现在input标签中flag元素名为auth请求方式为post

那我们也可以通过post请求直接获取flag

这道题的作用就是初步了解前端知识。


simple_js

打开场景就是让我们输密码,随手输一个看看

回显假密码还带个haha(有被嘲笑到),网页空白,题目又提及js,那就查看一下网页源代码

js代码这么多,线索应该是在这其中。对代码审计一番发现,首先是定义了很多无用变量,其次回显结果与tab无关。这时候下方的一段代码引起了注意。

String["fromCharCode"](dechiffre("\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"));

\x开头感觉是十六进制,随手写个python脚本跑一下看看

得到这一串数字,盲猜是ASCII编码,再写个python脚本跑一下看看

按照题目描述flag格式尝试提交成功

那么flag为

Cyberpeace{786OsErtk12}

xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。根据题目描述,那就是考验xff和referer知识。

知识补充:

XFF

X-Forwarded-ForXFF)是用来识别通过HTTP代理负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。 Squid 缓存代理服务器的开发人员最早引入了这一HTTP头字段,并由IETF在HTTP头字段标准化草案中正式提出。

这一HTTP头一般格式如下:

X-Forwarded-For: client1, proxy1, proxy2, proxy3

其中的值通过一个 逗号+空格 把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。 在上面这个例子中,这个请求成功通过了三台代理服务器:proxy1, proxy2 及 proxy3。请求由client1发出,到达了proxy3(proxy3可能是请求的终点)。请求刚从client1中发出时,XFF是空的,请求被发往proxy1;通过proxy1的时候,client1被添加到XFF中,之后请求被发往proxy2;通过proxy2的时候,proxy1被添加到XFF中,之后请求被发往proxy3;通过proxy3时,proxy2被添加到XFF中,之后请求的的去向不明,如果proxy3不是请求终点,请求会被继续转发。

Referer

referrer 网站来路;访问者进入网站的任何途径。HTTPReferrer是header的一部分,当浏览器向web服务器发出请求的时候,一般会带上Referer,告诉服务器用户从那个页面连接过来的,服务器藉此可以获得一些信息用于处理。

总结就是xff可以用来构造来源ip地址(可伪造),referer可以用来构造来源网址URL

了解了一下基础知识,那我们现在就打开场景看看

映入眼帘的就是IP地址,那根据上面我们所了解的,这应该就是我们要构造的xff的IP地址

使用bp抓包,在头部加上 xff(注意大写字母),然后放行。

X-Forwarded-For:123.123.123.123

网页回显直接告诉我们了referer所要构造的来源URL

那我们在头部再加上referer(注意大写字母),放行

Referer:https://www.google.com

网页回显flag,完成!


weak_auth

题目描述提到了密码,第一反应涉及暴力破解,题目翻译完为“弱身份验证”那应该和弱密码八九不离十了。

打开场景

随便输入一个账号密码看看反应

要求用管理员账号登录,尝试admin账号登录

回显密码错误,说明admin为管理员账号,省的爆破管理员账号了,直接对密码进行爆破

因为是弱密码,想来密码也不会太难,输入账号密码即可获得flag

cyberpeace{3524f45577e157552bfe3b42a3a0e23d}

这道题还存在一个小提示,当我们输入账号密码错误之后,页面也会跳转到一个空白页面,对网页进行检查能发现提示

command_execution

题目https://adworld.xctf.org.cn/challenges/problem-set-index?id=25

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

根据题目描述,我们可以推测应该是在ping命令拼接了其他命令导致文件信息的泄露。

打开场景

首先要能ping通才能有迹可寻,尝试ping127.0.0.1.

能够ping通并且有回包,那我们再试着拼接语句。

知识补充

windows 或 linux 下:

  1. command1 && command2 先执行 command1,如果为真,再执行 command2

  1. command1 | command2 只执行 command2

  1. command1 & command2 先执行 command2 后执行 command1

  1. command1 || command2 先执行 command1,如果为假,再执行 command2

命令执行漏洞(| || & && 称为 管道符)

那在这里我们使用&、&&、|都可以用来拼接

首先查看有没有文件

127.0.0.1 | ls

有个index.php文件,那接下来直接利用find查找是否存在flag文件

127.0.0.1|find / -name "flag*"

发现txt文件,直接用cat查看

127.0.0.1|cat /home/flag.txt

发现flag

cyberpeace{506e217e083b3339831a12159382c7b2}

总结:

这道题主要是掌握命令拼接的方法,和熟悉Linux命令

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

攻防世界:WEB新手练习区 的相关文章

  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 用户数据中的幸存者偏差

    幸存者偏差 Survivorship bias 是一种常见的逻辑谬误 意思是没有考虑到筛选的过程 忽略了被筛选掉的关键信息 只看到经过筛选后而产生的结果 先讲个故事 二战时 无奈德国空防强大 盟军战机损毁严重 于是军方便找来科学家统计飞机受
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 200道网络安全常见面试题合集(附答案解析+配套资料)

    有不少小伙伴面临跳槽或者找工作 本文总结了常见的安全岗位面试题 方便各位复习 祝各位事业顺利 财运亨通 在网络安全的道路上越走越远 所有的资料都整理成了PDF 面试题和答案将会持续更新 因为无论如何也不可能覆盖所有的面试题 php爆绝对路径
  • 用CHAT写一份标题为职业教育教师教学能力提升培训总结

    CHAT回复 标题 职业教育教师教学能力提升培训总结 一 活动概述 本次由学校组织的职业教育教师教学能力提升培训于8月15日至8月20日顺利进行 来自全校的60位职业教育教师参与了此次培训 主讲人为享有盛名的教育专家马丁先生 二 培训内容与
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1
  • 【GRNN-RBFNN-ILC算法】【轨迹跟踪】基于神经网络的迭代学习控制用于未知SISO非线性系统的轨迹跟踪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 第1部分 2 2 第2部分
  • 全网最全(黑客)网络安全自学路线!熬夜两周整理(巨详细)

    学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想成为计算机
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全

随机推荐