攻防世界web新手练习区11道题讲解
前言:
缓慢学习ctf中...希望我写的对之后的小白们有一点用...也是让我自己能记住一些解题步骤...记录一下我的成长...
题集内容:汇聚多道web新手练习题,题目难度适合新手学习web类型题目 涉及常见的web漏洞,诸如注入,XSS,文件包含,代码执行等漏洞,且题目具有练习引导性,对新手童鞋较为友好呦。
1.view_source
题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
解题步骤:点击题目场景后显示“FLAG is not here”右键也确实无法按动。
直接按F12呼出操作台,在操作台的查看器里就能看到flag啦~复制粘贴就好咯~
题目思考:这题应该考察快捷键吧。如果鼠标右键可以用,那就在网页右击,点击“检查”。如果右键不能用,那就用“F12”或者“ctrl+shift+I”,都可以呼出操作台~
2.get_post
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
解题步骤:点击环境后显示“请用GET方式提交一个名为a,值为1的变量”。
1.首先,需要在浏览器上配置扩展:我用火狐浏览器,先看右上角像拼图一样的图标,点击管理扩展然后搜索hackbar并添加扩展,我本来用的hackbar但现在好像用不了了,所以我用max hackbar。直接搜索hackbar会出现很多个,功能应该都差不多,大家可以自由探索一下~
2.配置好扩展后,打开操作台max hackbar会直接显示在选项卡栏后面,先load URL,网页提示我们要用get方式,就是在URL后面加上“?a=1”,点击“execution”执行后会显示“请再以POST方式随便提交一个名为b,值为2的变量”。
3.选中左下角的“Post Data”,再输入“b=2”,点击“execution”就会得到想要的flag啦~
题目思考: 题目提到“GET”和“GOST”两种数据提交方式,两者区别在于:GET提交时数据在URL中,适用于查询、搜索、分页等非敏感操作,可以直接在URL中修改。POST方式则用于敏感或大数据操作,从解题过程也能看出来,POST方式相对隐秘一些。
3.robots
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
解题步骤:打开环境后,网页什么都没有显示。
1.在URL后添加“robots.txt”,回车后网页显示如下:
2. 根据网页提示,将URL的后缀修改为“f1ag_1s_h3re.php”,回车后显示flag。
题目思考:这题考查robots协议,对此类题目的粗略解题步骤就是:
1.先在URL后面添加“robots.txt”访问网站的robots.txt文件,格式为“http://目标网址/robots.txt”.
2. 通常会和该题一样显示:
User-agent: * Disallow: Disallow: f1ag_1s_h3re.php
直接尝试访问Disallow的路径,当然也可能会用Allow的路径,都是直接尝试访问,格式为“http://目标网址/Example_Disallow”。
3.如果直接访问Disallow的路径都不对,那可以直接访问目录文件。即在上述步骤2的基础上直接再添加"/flag.txt""/flag.php""index.php.bak"等一系列常用隐藏文件名。通常顺序是“常见文件名-备份文件名-后台文件-数据库文件”
当然进一步学习后还可以直接用工具爆破,但我还不会...
4.backup
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
解题步骤:题目问我们index.php的备份文件,我们直接再URL的后面添加上“index.php.bak”,回车就会自动下载一个txt文件,打开文件就能看到flag啦。
题目思考:index.php的常见备用名有"index.php.bak""index.php~"等等,“.bak”是最常见的,其他的太多了我记不过来了。
5.cookie
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
解题步骤:
1.右击检查,点击“网络”,按照页面提示点击“分析”按钮,分析后返回,并点击第一个。
2.点击右边的cookie会看到“look-here:"cookie.php"”
3.修改URL,在后面添加"/cookie.php",回车后根据网页提示,重复步骤1,在右边的消息头中的响应头中就能看到flag了。
6.disabled_button
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
解题步骤:打开环境后显示一个不能按的按钮,那么我们要做的就是想办法让这个按钮能按。
1.右键检查后观察查看器,展开body部分,右键编辑,删去“disabled=""”
2.删除后按钮就可以按啦,就能看到flag了~
题目思考:我还不太会HTML编辑嘞,但是这个还是很简单很明显的。
7.simple_js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
解题步骤:我们可以先随便输入几个密码,发现都不对。
1.检查查看源代码
2.观察源代码,真正的密码是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"),除此之外,不管输入什么密码都会显示"70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"解码后为:“ F A U X [空格] P A S S W O R D [空格] H A H A”
3.将真正的密码先用十六进制解码,再用ASCII码解码,就能得到密码啦,输入正确密码就能得到flag。可以用python对代码进行解码:
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(",")
c = ""
for i in s:
i = chr(int(i))
c = c+i
print(c)
题目思考:\x23这个格式是是十六进制
8.xff_referer
题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
解题步骤:我用到一个浏览器扩展"Modify Header Value(HTTP Headers)"
1.打开这个扩展“Open options page”,环境网页提醒我们ip要是123.123.123.123,我们在扩展中修改xff.
2.修改xff就是在扩展的第三部分,按找图片所示填写URL,Header Name和Header Value,然后点击add,就会显示如下图了,再刷新原界面,发现显示“必须来自https://www.google.com”。
3.继续修改referer,如下图,刷新原界面就能得到flag了,注意网址要填写完整,建议直接复制粘贴吧。
题目思考:通俗一点解释xff就是修改ip,通过xff伪造可以让服务器误以为请求来自我伪造的ip,从而可以绕过ip封锁,从而正常访问我想要访问的服务器。而referer就是说明我是从哪个网站点进来的。
9.weak_auth
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
解题步骤:检查后没有线索,随机输入一个账号密码后显示如下图:
提示我们账号为admin,而密码则需要字典爆破,下面用到工具BurpSuite.
1.在浏览器增加一个扩展,我用的是FoxyProxy.并且新建一个proxy设定如下图,然后再burp suite里设置相同的hostname和端口号。


2.题目已经提示账号为admin,现在先打开foxyproxy和burp suite.
3.再随便输入一个密码,回车后发现网页一直在加载,此时burpsuite已经拦截了网页,在它拦截的request我们就能看到我输入的admin和password为123,接下来我们可以在burp suite上开始尝试爆破。
4.在该网站对应的request处右击,send to intruder.
5.在Intruder处选择sniper attack,选中最下一行的123,点击Add$,表示接下来要在此处爆破。并在最右边点击payload,点击load,这里我在csdn上下载了一个文件包含一些常见密码,加载这个文件,最后点击start attack开始爆破。
6.burpsuite会将文件的数据一个个作为密码试过去,等完全爆破完后我们可以根据length的大小判断正确的密码,期间我们也可以直接点击数据查看response,可以看response里是否显示答案正确。最后密码是123456(我的burpsuite是免费版所以爆破很慢很慢呃呃)。用正确的账号密码登录就能看到flag啦。
题目思考:做完题目后我们会发现,其实这道题的账号和密码都很简单,所以我们之后遇到这类题目时可以先尝试几个容易出的账号密码,做出了的几率还是很大的。这题主要考察burpsuite的运用吧,好神奇...
10.command_execution
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
解题步骤:1.按照下图输入,表示查看根目录的home目录里有什么。
2.PING后显示home目录下有一个flag.txt,那么再按照下图输入,抓取flag.txt里面的内容就能得到flag啦。
题目思考:这题其实需要linux知识用来查看根目录之类的。ls是“list”的缩写,在CTF或Web安全题目中,“|ls /home”是一种命令注入攻击的尝试。这里涉及到几个概念:命令注入:当Web应用程序将用户输入直接传递给系统命令执行时,如果未做适当过滤,攻击者可以注入额外命令。管道符(|):在Unix/Linux中,管道符用于将前一个命令的输出作为后一个命令的输入。
11.simple_php
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
解题步骤:1.观察第一个if语句要去a为0但a也要为true,这个看似矛盾,但是因为php自身的漏洞所以可以实现,我们要看php的类型比较表,根据表格我们可以看0所对应的true,如“0”,false等都可以。
2.在url后增加a发现得到的flag只有前半段,需要通过b得到后半段flag,通过下方代码可知,b的要求为既不是数字,若为数字将直接执行exit(),但是b又要大于1234.所以我们设定b为1237W,就是一个大于1234的数字加上一个字符串的类型,由于php自身的漏洞,当读取到字符串时自动结束,只保留字符串前的数字,这样b既不是一个完全的数字,又比1234大,就能得到完整的flag啦。






















