链接一、链接二
题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
解题思路:
由于禁用了鼠标右键,但是可以直接f12或者使用web开发者就可以看到源码或地址栏的http前加上view-source
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
robots:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。该文件默认在网站根目录下。
解题思路:
因此直接访问该地址下的robots.txt文件看到flag文件后,访问该文件即可。
即可得到flag
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
解题思路:
index.php的备份文件名是index.php.bak,在地址栏后方输入/index.php.bak 访问即可。
打开得到flag
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
解题思路:
首先访问网页,我用的是火狐浏览器。然后F12查看其网络里的cookie发现让访问cookie.php
于是我们在地址栏后方输入/cookie.php
访问后提示See the http response
这里我们可以用Bp抓包
也可以用火狐浏览器 我们先关掉F12 然后刷新下网页再按F12
找到cookie.php那一行就会找到flag
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
解题思路:
将按钮button的默认值disable删掉或改为able
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码
解题思路:
访问页面发现是个登陆页面。我们需要用到BP进行爆破
首先点击login 提示用户名为admin。
先输入用户名admin,然后密码随便输入 进行抓包
右键空白处选择Send to Intruder
然后我们点击Intruder这个选项卡 进入以后点第二个。因为我们知道用户名为admin所以只需要对密码进行爆破。于是选中admin点击右边的clear 清除那个字符 只保留密码的
然后点击第三个选项卡 进行爆破的弱口令设置。可以点击Load加载弱口令也可以自己输入添加。在下方框里输入弱口令点击add即可
输入完成以后返回第二个选项卡 点击右边的Start开始进行爆破
最后发现123456的长度与其他的不同 所以123456是密码。
输入admin和123456登陆得到flag
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
解题思路:
这个题是代码审计
根据这个PHP代码我们了解到需要以Get的方式传入两个参数a和b。
阅读代码发现需要同时满足a==0且if a为真,b不是数字且b>1234才会返回flag.
由以上结论可以得出url后加/?a=0a&b=12345a
关于a和b的取值问题如下解释php手册里面写道:当一个字符串当作一个数值来取值,其结果和类型如下:如果该字符串没有包含’.’,’e’,’E’并且其数值值在整形的范围之内,该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0如:“0e11”=="0e22"比较的时候,会将这类字符串识别为科学技术法的数字,所以0的多少次方都是零。“A”==0比较的时候,会将A转化成数值,强制转化,由于A是字符串,转化的结果是0自然和0相等。“1A”==1比较的时候会将1A转化成为数值1;但“A1“==1结果却为false,也就是"A1"转化成了0
a参数的要求 a必须等于0且a为真
b参数的要求 b不能为数字且b大于1234
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
解题思路:
Get和POST的资料:https://www.w3school.com.cn/tags/html_ref_httpmethods.asp
我们需要先用get方法提交一个名为a值为1的变量
在url后加/?a=1
然后提示说要用POST方式随便提交一个名位b,值为2的变量
这里用到一个插件Hackbar。勾选Post data 在下方框里输入b=2 运行即可得到flag
题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
什么是XFF?
X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。
在一些大型网站中,来自用户的HTTP请求会经过反向代理服务器的转发,此时,服务器收到的Remote Address地址就是反向代理服务器的地址。在这样的情况下,用户的真实IP地址将被丢失,因此有了HTTP扩展头部X-Forward-For。当反向代理服务器转发用户的HTTP请求时,需要将用户的真实IP地址写入到X-Forward-For中,以便后端服务能够使用。由于X-Forward-For是可修改的,所以X-Forward-For中的地址在某种程度上不可信
解题思路:
首先,我们使用火狐浏览器的插件X-Forwarded-For Header来修改ip
修改好后刷新一下页面发现提示
所以我们需要用Bp来修改一下。首先抓到包然后右键发送到Repeater
点击Repeater选项卡,选择第一个或者第二个选项卡添加以下内容。
添加完毕后点击GO即可得到flag
Referer: https://www.google.com
X-Forwarded-For: 123.123.123.123
题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
解题思路:
访问页面发现直接给出了经典的PHP一句话木马
我们用中国蚁剑来链接这个木马
输入URL地址然后输入连接密码shell然后点击添加即可
双击进入发现有flag.txt
双击进去得到flag
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
War的意思是防火墙,本题没有防火墙
解题思路:
先查找本地ip试试127.0.0.1.果然有用
注:过后了解到格式其实应该这个样ping -c 3 127.0.0.1
然后我们用ls命令来获取当前目录
&&符号执行多个命令
发现有用,我们再试着寻找txt”文件,输入命令
127.0.0.1 &&find / -name "*.txt"
果然将所有的txt文件都显示了出来 我们发现第一个就是flag.txt
我们试着用cat命令将里面的内容打印出来
127.0.0.1 && cat /home/flag.txt
得到flag
补充:
命令执行漏洞是什么?
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
比如题目中,直接把用户输入的参数不经过过滤直接放在ping命令之后,而恶意攻击者可以在输入的参数中用&&截断,而执行下一个恶意命令
常见连接符
;A;B 先执行A,再执行B
& A&B 简单拼接,A B之间无制约关系
| A|B 显示B的执行结果
&& A&&B A执行成功,然后才会执行B
|| A||B A执行失败,然后才会执行B
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
解题思路:
首先进入容器页面以后发现让输入密码,由于我们并不知道密码直接点击确定两次确定以后就一片空白,然后我们F12查看源代码。发现有一串奇怪的数
\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
感觉像是一个十六进制我们用在线网址解密一下得到:
55,56,54,79,115,69,114,116,107,49,50
看起来像是ACSII编码 我们再转换一下。
如果没有工具可以利用在线网址转换。
786OsErtk12
感觉像是flag结合之前给出的格式提交一下,成功。