攻防世界[刷题笔记]
Web方向(新手区)(后半)
xff_referer
题目来源: Cyberpeace-n3k0 题目描述:X老师告诉小宁其实xff和referer是可以伪造的。 题目附件: 暂无 题解: 首页说ip地址必须为123.123.123.123,也就是说xff就必须得是这个。首先得明白什么是xff,这里简单百度一下可以知道X-Forwarded-For (XFF) 是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。也就是说xff这里就是自己的ip地址,只要我们发送给网页的请里,把xff的ip进行修改即可。既然要这个修改发送网页的请求,这里就用到burpSuit。 打开后进行刷新用burpSuit抓包 右键选择发送到Repeater模块,进行修改请求包 添加一行xff,ip地址为123.123.123.123,之后选择发送Send 发送之后这里说这个请求必须是来自谷歌浏览器 这里就得用referer,那先来百度一下看看referer是什么:[ http referer 是header的一部分 ,在浏览器向web服务器发送请求的时候,一般都会带上refere,告诉服务器我是从哪个页面链接来的,服务器因此获得一些信息用于处理 ]这得知referer是记录我们来自的页面。所以这里我们把referer段修改一下,最终获得flag
webshell
题目来源: Cyberpeace-n3k0 题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。 题目附件: 暂无 题解: 先看首页 首先作为初学者,先来了解一下webshell是什么。简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等 知道了后,咱们就可以使用webshell工具进行入侵这个网站 这给webshell叫做蚁剑,需要的朋友可以关注博主私信我。言归正传,这里打开工具后,空白界面右键点击Add,填入入侵的网址和pwd,这里pwd通过网页的php代码post[‘shell’]得知。 连接之后如图,双击进去 看到flag文件,点开即可获得flag。
command_execution
题目来源: Cyberpeace-n3k0 题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。 题目附件: 暂无 题解: 进去看到页面 没有思路,去看看这个题目描述,这里知道,这个网站没有waf服务,首先百度一下什么是waf:[ Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 Web应用防火墙会对HTTP的请求进行异常检测,拒绝不符合HTTP标准的请求]从这里得知,咱们可以通过不符合标准的http请求来获取信息。 首先咱们在网址栏随意输入一下,看看404页面 这里Ubuntu。可以得知是linux系统. 这里先ping一下看看 这里展示的页面可以看出是通过执行命令获取消息。那么我们可以把输入那里当作一个linux的命令输入栏,来操作这个linux服务器。 这样我们开始在正常ping后面加一段linux命令看看
解释:find 是查找命令 “/”表示家目录 “-name”表示按名字查询 “flag*”表示以flag开头的文件,*表示匹配所有。
执行之后看到flag.txt的位置 得到flag位置后,直接cat显示就可以得到flag
simple_js
题目来源: root-me 题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} ) 题目附件: 暂无 题解: 进入首页首先看到要输出密码的提示框 随便输入一个密码后,提示 这里咱们直接看网页的原代码,鼠标右键查看网页源代码 然后开始对源代码进行审计,function dechiffre是自定义了一个函数 这里window.prompt是弹出一个消息提示框,输入密码,并把密码赋值给h。然后把h代入到函数里。 之后咱们在来看这个函数的内容 咱们的输入会成为函数内pass_enc这个参数的值,后面是pass_enc给了tab变量,pass给了tab2变量 分析这两块儿内容,遍历tab2的长度,遍历到第五个就停下来,然后把那个五个,通过String.fromCharCode这个方法返回并链接到p上,下方那个同理,是把tab2[6]到tab2[tab2的前一个],可以发现tab在这里根本没有进行参与计算,循环到最后就是在把tab2[17]加入到p内。至此整个函数分析完毕。就是把pass通过String.fromCharCode方法加入到p内输出,自己的输入pass_enc没有参与到任何计算。 那么咱们看看pass通过String.fromCharCode方法后返回的内容。 鼠标右键检查进入控制台调用该方法,发现返回的是提示密码错误的消息。那么至此我们可以肯定,那个函数的功能就是接收任意字符串密码,统一返回密码错误提示。 那么最后没有分析的就只剩下一行代码了,那毫无疑问,flag肯定在那里。 这里因为我们已经知道dechiffre函数毫无作用,所以我们忽略它,看里面的十六进制字符。这里想到把这个字符通过String.fromCharCode进行转换。 我们可以先看看String.fromCharCode的用法 这个方法起到一个转换字符的功能。那么这里想法就是把这串字符改换成像函数里pass那样数字的格式。 这里我们可以用python脚本或者控制台console.log进行输出查看,这里都进行展示一下 那么最后就简单了,把这串数字代入到函数内运行就获得了真正的密码 将它以(Flag格式为 Cyberpeace{xxxxxxxxx} )提交即可解答。
小结
写到这里攻防世界的web新手题就已全部更新完毕,感谢各位的阅读,如果我的文章能给你带来受益是对我最大鼓励,希望大家可以点个赞或者关注一下,这就是对我最大的支持。之后将会开更攻防世界web区高手题题解和逆向区的新手题题解,希望大家可以多多鼓励,谢谢大家!
|