攻防世界WEB新手训练区

view_source

此题我愿称之为网安领域的hello world

查看网页源代码的方式一般有——

  • 右键->查看网页源代码
  • F12->源代码/来源
  • Ctrl+u

随后可以再代码第17行处找到flag,至此迈入网安第一步。可喜可贺,可喜可贺...


 get_post

考察http的两种请求方式,一种是get方式,一种是post方式

get的提交方式为,在网页的URL后面写个英文问号,然后写变量表达式,如下:

提交完成后页面会更新并多一句话提醒用post方式提交变量b,这时候需要借助hackbar插件了(读者请自行查阅资料完成插件的安装)

弄好插件后用快捷键F12进入开发者模式 ,如下:

把该网页的URL复制到(可以直接点LOAD)HackBar中的URL栏中,打开【Use POST method】这个开关,随后在Body中输入b=2,最后点击【EXECUTE】即可刷新页面并获得flag


robots 

robots协议_百度百科 (baidu.com)

百度百科:robots协议也称爬虫协议、爬虫规则等,是指网站可建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎则通过读取robots.txt文件来识别这个页面是否允许被抓取。

简单来说,我们知道网页其实就是服务器下的一个个文件,robots.txt就是其中之一,因此根据提示先直接去访问robots.txt这个文件,看看能有什么新线索。访问方式就是在网页的URL后面加上/robots.txt

发现新页面是如下三行

  • 第一行的User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
  • 第二行的Disallow: 后面无内容。
  • 第三行的Disallow: f1ag_1s_h3re.php,表示禁止搜索引擎爬虫访问名为f1ag_1s_h3re.php的文件

通过访问robots.txt这个文件,我们获取到的线索就是该服务器下还有一个文件叫f1ag_1s_h3re.php,所以下一步就直接再去访问这个文件即可,就像刚刚访问robots.txt那样做(别忘了回到原来的父路径)

访问后页面刷新,获得flag


backup

这题让找备份文件,打开靶场后提示找的是index.php的备份文件,这样就获得一个线索,要知道,备份文件的名字就是在原文件的名字加上后缀,备份文件有以下几个常用后缀:

                .git        .svn        .swp        .~        .bak        .bash_history        .bkf

因此第一种思路就是枚举去尝试访问index.php.git,index.php.svn...等等这些文件,当试到index.php.bak的时候,网页会自动下载这个文件,说明试到正确答案了

我们用记事本打开它,可以轻松拿到flag

仅仅是这样的话就太浪费这题了,交完flag后回来复盘

这题其实可以通过kali(没装kali?见本篇->linux的kali安装,换源,更新包-CSDN博客)的工具dirsearch对该网页进行一个路径扫描,一扫就知道这个网页路径下有什么文件了

使用命令【dirsearch -u URL】对指定路径进行扫描,进度到60%左右时会出现index.php.bak(这时可以Ctrl+c提前结束扫描),证明该路径下确实有这个文件,然后进行访问即可

(笔者是finalshell连接的kali系统,用起来会比较顺手)


cookie

按F12键进入开发者模式,在【应用】中找到Cookie,可以看到名为【look-here】的项,其值为cookie.php,因此线索为该路径下存在此文件

理所应当地去访问一下这个文件,页面刷新了,提示去看http response,就去【网络】中找到【标头】,在响应标头中能找到flag


disabled_button

题目描述提到“前端知识”,给出这题的线索应该是和前端代码有关,打开靶场,一句话加一个按钮,点了点发现按钮确实按不了

那么F12进入开发者模式,点一个这个我用绿色框框起来的【选中】按钮后把鼠标移动到按钮位置,这样做可以快速定位这个按钮的代码位置

代码被定位到了下面绿色框起来的位置,发现它是一个表单,把它展开仔细观察,发现其存在一个属性【disabled】,这个属性会使该元素不可交互,这就是按钮不可按下的主要原因了

 把disabled属性删除,按钮就能按了

按下按钮,轻松获得flag

(怎么说呢,这题有点小学初中那会玩史上最坑爹的小游戏的既视感??啊)


simple_js

这题的难度相对于其它的题目都显得有点高,比较吃做题人的经验,经验不足就会手足无措

首先打开靶场,测试了几下,发现确实如题所说,不管什么密码,结果都提示这个

这时就应该换个思路,比如去看看网页源代码、cookie、http response...等等,找找线索,显然在源代码中我们能提取到不少信息

说实话笔者写这里时也只是个ctf小白,不是很能看懂这个代码,但能根据一点编程经验猜个大概

主要是由一个自定义函数dechiffre(红框部分)和3行代码(绿框部分),函数在未调用时不会起作用,所以先从绿框的3行代码入手

 第22行代码:

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"));

这行代码先调用上面红框自定义的dechiffre函数,传入一个字符串(看这个字符串的格式大概猜得到是16进制编码),dechiffre函数会经过它的逻辑后返回一个字符串A,然后String["fromCharCode"] 函数(JavaScript的API)把字符串A转换为字符串B除此之外这行代码似乎并没有对其它什么参数有造成影响??那就先放着...吧

第24行代码:

h = window.prompt('Enter password');

这行代码调用一个名为window.prompt的API,其作用是指示浏览器显示一个对话框,用来提示用户输入一些相关信息,也就是打开靶场后显示的这个密码框

接下来的逻辑是把用户输入的密码赋值给变量h,这就是第24行代码的所有作用了

第25行代码:

alert( dechiffre(h) );

这行代码调用alert函数,把其中的参数作为“警告”提示在屏幕,而所谓的参数是通过调用函数dechiffre(h)来获得的一个字符串

自此我们终于理清楚了调用链:

首先调用dechiffre(h),h来自用户输入,然而我们只用稍微看看dechiffre函数的逻辑就能明白,它返回的字符串跟传入的这个h参数根本没关系,而是固定返回一个字符串FAUX PASSWORD HAHA,所以不管输入什么密码,最后显示的结果都是这句话

到了这步,其实仅仅是把这个网页所谓的“bug”给理清楚了,但似乎对解题依旧没什么进展?

所以还是得换换思路,多写几道ctf题目其实不难总结出经验,所谓的flag就是被出题人藏在各种地方,但不一定以明文的形式展示,也可能是密文

而这题的flag就被藏在源代码中的第22行,甚至可以说其它都是无关信息,这一大串的十六进制编码就是密文形式的flag,需要做题人自行想办法去解码

 因此接下来的工作就是写一个脚本去解码,写这种脚本最好是用python而不是c、c++等,后者会很麻烦,随便一个字符串转整数就要写一大段算法代码,难顶...

接下来是脚本的编写教学,不想看的自行跳过即可——

①首先把这串十六进制编码打印出来,python识别到非十进制格式的编码时,会自动转成十进制输出,因此得到以下结果:

②通过输出的结果,合理猜测这是一串ASCII编码,我们将其转为对应的字符,或许就能拿到flag但也得进行一些相应的操作,首先把原字符串按逗号分割成字串,得到对应的列表,这里再把列表也打印一下验证正确性

③循环遍历列表list,对于每个元素,采取两次类型转换,先转为整型(int),再转为字符型(chr,python的字符型是chr而不是char),即可获得编码对应的字符,所有字符连在一起,组成了本题的flag,按题目要求的格式把flag包裹起来提交即可

Cyberpeace{786OsErtk12}

完整脚本:

str = "\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(str)
list = str.split(',')
print(list)
for i in list:
    print(chr(int(i)), end='')#对每个元素,先转int再转chr后输出,print以空字符连接下次输出(不换行的意思)


xff_referer

百度百科:

X-Forwarded-For_百度百科 (baidu.com)

HTTP_REFERER_百度百科 (baidu.com)

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

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

简单理解:

xff用来记录用户真实ip以及代理服务器的ip。
referer用来记录当前网页是从哪个链接过来的。
以上两个属性都是可以伪造的!

打开靶机,页面显示说“ip必须来自123.123.123.123”

因此第一步去构造xff:

F12】进入开发者模式->【HackBar】->【LOAD】把当前URL加载进插件->

MODIFY HEADER】修改头部,这里先按要求伪造一个xff,值为123.123.123.123->【EXECUTE】发包后,可以看见页面刷新,新的信息显示“必须来自https://www.google.com”

因此第二步去构造referer:

MODIFY HEADER】修改头部,这里按要求构造一个referer,值为https://www.google.com->

EXECUTE】发包后,可以看见页面刷新,获得本题flag


weak_auth

 weak auth是弱口令、弱认证的意思,打开靶机显示的是一个登录页面

先尝试性地随意输入一个账号密码,结果显示“please login as admin” ,即让我们用admin作为账号去登录

现在知道账号是admin了,那密码呢?不知道,但是题目提示我们了是“弱认证”,即密码安全性极低,因为我们采用字典爆破,把正确密码试出来:

①开启burp代理,使用burp抓包,admin是账号,先随便输入一个密码

②右键【Send to Intruder】,使用burp进行爆破的操作

③选中密码的文本(选中文本时要注意,burp似乎有点错位,选中的与实际相比,前面少一个字符后面多一个字符,所以选中文本过程要注意一点。。。)->【Add】添加需要爆破的position

 ④【Payloads】->【Load ...】把本地备好的字典(网上随手一搜有一堆)加载进burp

⑤按下【Start attack】开始爆破

⑥把结果按照【Length】倒序排列,发现密码为123456的回复包的长度最长,说明有问题,查看Response,获得flag

⑦也可以回到靶场,【账号:admin        密码:123456】,登录后页面刷新,获得flag


 command_execution

百度百科:WAF_百度百科 (baidu.com)

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

打开靶机,显示的是一个具有ping功能的页面

随意ping了一下比较简单的地址,这里通过显示的信息可以得知,该靶场基于Linux操作系统

本题题目描述说没有waf,可以理解为对于用户的命令不作安全性判断,借此可以利用Linux的管道符命令语法进行命令拼接,原理介绍:

在管道符左边的命令结束后,会将左边命令的结果作为输入,立即执行右边的命令,例如这边的ls,是指列出当前目录的文件夹和文件

因此利用这个语法特性,去进行命令拼接,查看靶机的工作目录下存放了哪些文件,由此获得线索

输入【ping w | ls】命令,这里的w是什么根本不重要,我们的目的是借助管道符拼接其后的命令【ls】,可以看见有名为【index.php】的条目被列举出来

 顺理成章地去访问一下此文件,发现页面刷新了一下,但内容没变,看来flag被藏在其它目录下,我们直接借助find函数去全局查找含有flag字样的文件

如法炮制,输入命令【ping w | find / -name "*flag*" 】 

find后面的/意味根目录,linux系统中根目录是最高级的父目录,-name表示按名字查找指定文件,"*flag*"即名字中含有flag的文件,可以看到查找结果中显然是第一个【/home/flag.txt】最有可能是我们的目标文件

再次拼接命令,这次我们要访问【/home/flag.txt】这个路径的文件,

输入命令【ping w | cat /home/flag.txt】,这里cat的作用是访问文件

访问结果拿下flag

 


simple_php

本题考察简单php代码分析,打开靶机就是一段php代码

 下面是代码分析:

<?php
show_source(__FILE__);//将当前文件的代码显示出来
include("config.php");//加载自定义配置文件
$a=@$_GET['a'];//get方式传入的参数a将赋值给变量$a
$b=@$_GET['b'];//get方式传入的参数b将赋值给变量$b
if($a==0 and $a){
    echo $flag1;//重点1:如果$a弱等于0并且$a为真,将输出$flag1
}
if(is_numeric($b)){
    exit();//如果$b是数字,程序将直接结束
}
if($b>1234){
    echo $flag2;//重点2:如果$b大于1234,将输出$flag2
}
?>

分析完代码后可以得出:get方式传入一个参数a,a要满足本身为true且a弱等于0,查看php弱相等表:php比较运算,强相等(===)弱相等(==)表-CSDN博客

 

 因此我们先传入一个a="任意字符串"即可,传参方式为在URL后面输入【?a="xxx"】,可以看见传参后页面显示出了flag的前半部分

 接下来是b的参数,分析得出b不能是数字,否则会进入第二个if逻辑导致程序直接结束,又要满足b大于1234,进入第三个if逻辑,获取下半的flag

必须输入一个字符串绕过第二个if逻辑,然后涉及到字符串的类型转换,见本篇string类型转整型(int)或者浮点型(float/double)->php基础学习之数据类型-CSDN博客

因此我们输入【&b=1235a】即可(同时提交多个变量,用&符号连接),"1235a"本身被php识别为字符串,在与1234进行比较时,进行类型转换,1235a变为1235,1235>1234,条件为真,输入第二段flag,与第一段flag组成本题flag

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/350583.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大数据面试题】HBase面试题附答案

目录 1.介绍下HBase 2.HBase优缺点 3.介绍下的HBase的架构 4.HBase的读写缓存 5.在删除HBase中的一个数据的时候&#xff0c;它是立马就把数据删除掉了吗? 6.HBase中的二级索引 7.HBase的RegionServer宕机以后怎么恢复的? 8.HBase的一个region由哪些东西组成? 9.…

论述Python中列表、元组、字典和集合的概念

Python列表是用于存储任意数目、任意类型的数据集合&#xff0c;包含多个元素的有序连续的内存空间&#xff0c;是内置可变序列&#xff0c;或者说可以任意修改。在Python中&#xff0c;列表以方括号&#xff08;[ ]&#xff09;形式编写。 Python元组与Python列表类似&#x…

oak-d-lite摄像头 去噪处理

前言 试过了各种滤波才知道&#xff0c;为啥oak在示例算法只是使用5X5滤波而不使用更好的滤波的原因了。 实验内容 oak-d-lite使用的工业相机噪声主要表现为随机的亮度变化&#xff0c;使用Non-Local Means Denoising算法后去噪效果很好&#xff08;左为原图&#xff09;&…

3D建模素材网站的特点有哪些?

3D建模素材网站的特点主要包括丰富多样的模型种类、高质量的模型、实时预览功能、易于使用、价格合理以及社区互动等。这些特点使得3D建模素材网站成为设计师们不可或缺的资源之一&#xff0c;帮助他们快速高效地完成设计工作。 那么3D建模素材网站的特点有哪些? 1、模型种类丰…

【复现】Laykefu客服系统后台漏洞合集_29

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 2. 漏洞二&#xff1a; 3. 漏洞三&#xff1a; 4. 漏洞四&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 Laykefu客服系统是thinkphp5Gatewayworker搭建的web客服…

「QT」QString类的详细说明

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「

契约锁高校行业电子签应用报告

高校数字化建设起步早&#xff0c;也是电子签章应用最为广泛的行业之一。为了及时为高校组织提供服务参考&#xff0c;契约锁整合了近年在高校行业的方案、场景、案例等资源生成“高校电子签应用报告”&#xff0c;随时为数字化校园建设助力。 高校电子签建设所需资料都在这 整…

ps---1.使用置入嵌入的智能化对象命令制作拼贴画

ps—使用置入嵌入的智能化对象命令制作拼贴画 素材 步骤 打开背景图 置入嵌入对象&#xff08;置入完&#xff0c;移动到正确的位置&#xff0c;回车或双击&#xff09; 栅格化图层 重复上述步骤制作拼贴画

图像读写(imgcodecs 模块)与视频读写

内置格式 OpenCV 可以在没有任何第三方库帮助的情况下读取以下格式&#xff1a; BMP的 高动态范围 (WITH_IMGCODEC_HDR) 太阳栅格 (WITH_IMGCODEC_SUNRASTER) PPM、PGM、PBM、PFM&#xff08;、WITH_IMGCODEC_PXMWITH_IMGCODEC_PFM) PNG、JPEG、TIFF、WEBP 支持 格式选择…

[SUCTF 2019]CheckIn1

黑名单过滤后缀’ph&#xff0c;并且白名单image类型要有对应文件头 对<?过滤&#xff0c;改用GIF89a<script languagephp>eval($_POST[cmd]);</script>&#xff0c;成功把getshell.gif上传上去了 尝试用.htaccess将上传的gif当作php解析&#xff0c;但是失败…

Flask 之旅 (二):表单

背景 上一篇帖子我们使用 Flask 创建了最基本的 web 服务。使用 bootstrap 对页面进行装点&#xff0c;使用 JQuery Ajax 实现了在页面上实时显示 log 的功能。趁着周末&#xff0c;我继续开始学习更多的东西以满足这个 web 服务的需求。 模板继承 之前我们有了首页&#xf…

多线程-单例模式

目录 1.单例模式 举例&#xff1a; 1.1单例模式的实现 饿汉模式&#xff1a; 懒汉模式&#xff1a; 1.单例模式 单例模式是一种设计模式。单例模式能保证某个类在程序中只存在唯⼀⼀份实例, ⽽不会创建出多个实例. 举例&#xff1a; package 多线程;import javax.manage…

Django从入门到精通(三)

目录 七、ORM操作 7.1、表结构 常见字段 参数 示例 7.2、表关系 一对多 多对多 第一种方式 第二种方式 7.3、连接MYSQL 7.4、数据库连接池 7.5、多数据库 读写分离 分库&#xff08;多个app ->多数据库&#xff09; 分库&#xff08;单app&#xff09; 注意…

微服务入门篇:Eureka注册中心(作用,搭建Eureka客户端和服务端)

目录 1.提供者与消费者2.Eureka的作用3.搭建EurekaServer1.配置服务端2.配置客户端3.复制实例操作4.服务拉取 1.提供者与消费者 ①服务提供者:一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务) ②服务消费者:一次业务中&#xff0c;调用其它微…

【机器学习】全网最全模型评价指标(性能指标、YOLOv5训练结果分析、轻量化指标、混淆矩阵详解)【基础收藏】

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 模型性能指标常见指标ROC/AUCROC & PRC多分类问题——混淆矩阵 计算结果分析——以YOLO v5为例1. confusion_matrix.png(混淆矩阵)2. F1_curve&#xff1a;3. labels.jpg4. labels_corrrelogram.jpg5…

【unity实战】实现蓄力丢手榴弹、烟雾弹、燃烧弹的效果

文章目录 爆炸燃烧烟雾效果资产手榴弹丢手雷烟雾弹、燃烧弹实现手雷每次撞墙弹发出音效&#xff08;补充&#xff09;完结 爆炸燃烧烟雾效果资产 https://assetstore.unity.com/packages/vfx/particles/war-fx-5669 手榴弹 手榴弹配置好刚体&#xff0c;碰撞体 新增脚本Th…

Dify学习笔记-工具(七)

1、工具 工具定义 工具可以扩展 LLM 的能力&#xff0c;比如联网搜索、科学计算或绘制图片&#xff0c;赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型&#xff1a;第一方工具和自定义工具。 你可以直接使用 Dify 生态提供的第一方内置工具&#xff0c;或者轻…

Likeshop多商户商城源码系统,支持二开

在电商行业高速发展的当下&#xff0c;拥有一套功能强大、易于操作的开源商城系统至关重要。Likeshop多商户商城系统正是这样一款集H5、小程序、独立APP于一体的开源电商解决方案&#xff0c;助力商家实现智能营销。 一、产品简介 Likeshop多商户商城系统为商家提供了丰富的营…

广州市荔湾区区长谭明鹤、广州工控副总经理张劲泉一行莅临上海毅速考察交流

2024年1月23日&#xff0c;广州市荔湾区区长谭明鹤、副区长阮伟致、广州工业投资控股集团有限公司&#xff08;简称&#xff1a;广州工控&#xff09;副总经理张劲泉等一行来到毅速公司上海总部考察交流。毅速公司董事长张占波、总经理陈烨、常务副总经理王利军等亲切接待了考察…

Sublime Text 3配置 Java 开发环境

《开发工具系列》 《开发语言-Java》 Sublime Text 3配置 Java 开发环境 一、引言二、主要内容1. 初识 Sublime Text 32. 初识 Java3. 接入 Java3.1 JDK 下载3.2 安装和使用 java3.3 环境变量配置 4. 配置 Java 开发环境5. 编写 Java 代码6. 编译和运行 Java 代码7. 乱码问题 三…