攻防世界web–新手练习区(详解十二个,萌新)
第一题:view_source
题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
解答:
打开网站显示:
题目提示说查看源码,于是按F12,直接查看源码即可得到flag。
得到的flag: cyberpeace{31241edef8bb206ed17ff54f7ca6d111}
第二题:robots
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
解答:
在百度搜索了robots解释:
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
所以想到在url后面加上robots.txt
后面又提示说,f1ag_1s_h3re.php于是在url后面加上,f1ag_1s_h3re.php,即可得到flag
得到的flag为:cyberpeace{9ed64eb3e0bd5c155e3f8eb408a08f9d}
第三题:backup
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
解答:
打开题目看到:
前提知识储备:
常见的备份文件后缀名有: (.git) ( .svn)( .swp)( .svn)( .~)( .bak)( .bash_history)
所以在url后面加上index.php.bak
打开下载的备份文件即可得到flag:
得到的flag: Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}
也可以使用目录扫描工具进行扫描, 我这里使用dirsearch
py -3 dirsearch.py -u http://111.200.241.244:54474 -e *
第四题:cookie
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
解答:
打开网站显示:
Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。
按F12,在控制台输入document.cookie
看到这个然后再将cookie.php添加到url后面:
看到提示说,看一下响应里面
得到的flag : cyberpeace{d2368085c83ac53e48360787d6ca50f6}
方法二:使用BurpSuite工具抓包工具
得到:
然后使用重放攻击
第五题:disabled_button
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
解答:
打开网站:
这个按钮不能按,那么按F12,发现有disabled属性,disabled属性可设置或返回是否禁用单选按钮。所以删掉disabled属性
将disabled=""删除后,按钮可按,按下后得到flag
得到flag: cyberpeace{a8b7d0ffa6d70204422548e5f5cf6216}
方法二:
或审计from表单代码,使用MAX hackbar,用post方式传递auth=flag,同样可以获得flag
第六题:weak_auth
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
解答:
打开网站看到:
先随便输入一用户和密码,提示错误,用F12查看源码,提示需要爆破。
那么使用Burpsite抓包工具,进行爆破,不过在这之前需要准备一个字典。打开抓包工具,在网页随便输入一个用户名和密码。然后右击选择intruder
再positions里面,把原来的标记删除掉,然后只添加密码标记即可
再选择字典,即可爆破密码
选择密码长度不同的密码一般是正确密码:
进入之后得到flag
得到的flag: cyberpeace{925b6a80cea3dd8afca7a1943267e603}
第七题:simple_php
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码
前提知识:
===比较两个变量的值和类型;==比较两个变量的值,不比较数据类型。
打开文件:进行代码审计
进行代码审计,发现同时满足 a== 0 和 a 时,显示flag1,在判断语句里,要求 a== 0 ,并且a不为0;看到两个等号,想到php弱等于,这里可以让a=abc,在“==”判断是,abc会被转换成“0”
is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,且php中弱类型比较时,会使(‘1234a’ == 1234)为真。要求b不能是数字,下面要求b大于1234,这里可以让b=1235a%00,%00是空格的意思,这样b就不会被判断为数字,且大于1234,b满足条件。对于is_numeric这个函数的绕过,还可以让b=2345a。即在后面加一个字母也可以。
得到完整的flag:
得到的flag: Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
第八题:get_post
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
打开文件显示:请用GET方式提交一个名为a,值为1的变量
那么url后面添加?a=1
题目有提示以post提交一个b为2的变量,这里使用的是maxhackbar
即可得到flag:
得到的flag为: cyberpeace{c6a0a0cfaefeedd6bb8c0f7296a3101f}
第九题:xff_referer
题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
解答:
打开网站显示:
使用burpsite抓包工具,提示ip地址必须为123.123.123.123,那么就要添加x-forwarded-for
根据提示又要添加来源是谷歌,那么添加一个Referer: https://www.google.com
得到的flag: cyberpeace{ef6cbe3aa892e4224b547780c0881dee}
第十题:webshell
题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。![请添加图片描述](https://img-blog.csdnimg.cn/b2ab9ed52728443786454198249e19a9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiA5Y-q5bCP5bCP6Ii5,size_20,color_FFFFFF,t_70,g_se,x_16)
解答:
打开网站显示:
根据题目放到index.php,那么使用蚁剑连接地址http://111.200.241.244:50239/index.php,即可得到flag:
得到的flag:cyberpeace{272225388faa51eb6fa659b4b6003983}
第十一题:command_execution
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
解答:
打开网站显示:
前提知识:
掌握有关命令执行的知识
windows 或linux 下:
command1 && command2 先执行command1,如果为真,再执行command2
command1 | command2 只执行command2
command1 & command2 先执行command2 后执行command1
command1 || command2 先执行command1,如果为假,再执行command2
命令执行漏洞(| || & && 称为 管道
我先ping 127.0.0.1,发现ping成功了
执行一个ping 带一个其他命令试试,果然能看到当前目录下的文件
在文本框内输入127.0.0.1 | find / -name “*.txt” (将 | 替换成 & 或 && 都可以),查找后缀为txt所在位置,如图所示。
文本框内输入 127.0.0.1 | cat /home/flag.txt 可得到flag
得到flag: cyberpeace{042d5240b4f80fe13941179eb1b0ff80}
第十二题:simple_js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
打开网站显示:
用F12查看源码,得到源码分析。
将十六进制转化为字符,再用ascii码转字符,得到flag:
x='\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(x)
# 55,56,54,79,115,69,114,116,107,49,50
x=[55,56,54,79,115,69,114,116,107,49,50]
for i in x:
print(chr(i),end="")
得到的flag: Cyberpeace{786OsErtk12}