攻防世界-新手web通关

最近一直再闭关学习,好不容易学完了,打个靶场放松放松,这是新手web,明天开始干高手的

攻防世界WP

1.view_source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

直接f12查看源代码
getflag

2.robots

题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。

直接访问:域名/robots.txt,出现提示php。
再访问:域名/提示php名称
getflag

image-20211013102805915

image-20211013102918071


3. backup

题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

主要考的是一些网站站长可能会把网站的源码备份文件放在网站根目录

image-20211014175454040

这个直接告诉你文件名了,那么通常本分文件后缀名会加上.bak

  1. 直接访问http://111.200.241.244:53024/index.php.bak
  2. 跳出下载,下载文件

image-20211014175605178

  1. 在本地把.bak后缀去掉,打开php

image-20211014175705189


4.cookie

题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’

这题有点坑,我原本以为就是考cookie,结果看了响应体里的cookie没有
  1. 访问http://111.200.241.244:53853/cookie.php(后面加上cookie.php)

image-20211014180108232

  1. 直接看响应头

image-20211014180251975


5. disabled_button

题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

这个考点是html代码了,很简单
  1. 直接f12查源代码,并删除disabld=""

image-20211014180459047

  1. 点击按钮

image-20211014180543706


6.weak_auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。

考点:弱口令
  1. 输入账号admin,密码123456,登录

image-20211014180844743

image-20211014180831244


7.simple_php

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

这题就是代码审计了,考的php代码

image-20211024182105835

假设有一段代码if($a){echo 123;}

当a为不同的变量类型的时候会有不同的情况不会输出123,以下情况都不会输出:
a =''
a =0
a =False

可以看到,a有两个条件,一个是a==0,而且中间是且的关系,当我们a为数字0的时候,后边的$a为0也就相当于False,所以很矛盾,不过这里需要知道,php中两个=和三个=不一样,两个等号只比较内容,而三个等号既比较内容也比较类型,所以a可以用字符串0绕过

后边的代码,对b进行判断,注意is_numeric它是判断变量是否是数字,而且只判断内容,不判断类型,所以你写个字符串的数字也会判断成功,进而执行exit(),凉凉,所以这时候我们需要知道php中的一个特点,就是我们如果用一个字符串例如9999a跟一个数字类型比较,那么它会自动将后面的字母去掉然后比较,当然你如果写的全是字母,那这个变量就相当于0,所以直接上payload

注意:

​ 这里b不能带单引号,如果b是’9999a’,那么判断他是数字成立,如果b是’a9999’,判断数字不成立,但是作比较的时候它当做0处理

?a='0'&b=9999a

8.get_post

题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

看到题目描述盲猜就是改GET和POST的请求方式

提示的这么明显,肯定有套路

image-20211024184323462

image-20211024184343661

好,那我直接hackbar,注意连接的a参数不要扔

image-20211024184523490


9.xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。

考的HTTP的referer请求头,so easy

image-20211024184647911

看来得我的BP出马了,手动加个XFF

如果客户端发请求会经过代理服务器,所以最后到web服务器的IP是代理服务器的,而XFF(X-Forwarded-For就代表告诉了服务器真实客户单的IP,不过可伪造)

image-20211024185211651

X-Forwarded-For:123.123.123.123

image-20211024185430387

这次是referer,,emm醉了,不能一次说完,,

image-20211024185615720


10.webshell

题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。

webshell,不多说

打开蚁剑直接连

image-20211024190227241

根目录里打开flag文件

image-20211024190241846


11.command_execution

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

这个考点就是RCE漏洞了

image-20211024190632788

先看下什么系统,查ip,windows–ipconfig;linux–ifconfig

127.0.0.1 & ifconfig

image-20211024192543723

是linux系统,那么直接看一下目录

127.0.0.1 & ls

image-20211024192643921

只有一个index,直接find吧

image-20211024193828016

cat直接读

image-20211024193911691


12.simple_js

题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

看这个名字,应该是js相关的

查一下源代码吧

image-20211024195006989

我*,我的内心是拒绝的,,,哎,整理下代码,看看吧

 function dechiffre(pass_enc){
        var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";			//定义pass
        var tab  = pass_enc.split(',');		//将输入的值用,分割开成数组
                var tab2 = pass.split(',');		//tab2是pas用,分割开的数组
				var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;     //变量赋值 j是tab的长度
                    k = j + (l) + (n=0);		//花里胡哨的,k暂时等于j也是tab的长度
                    n = tab2.length;			//n为18
                    for(i = (o=0); i < (k = j = n); i++ ){		//循环 又开始花里胡哨  k=n 为18 循环18次因为判断了i==5跳出循环,而且在循环体最后边,相当于要执行6次
						o = tab[i-l];   //因为下边o又重新赋值了,这行忽略
						p += String.fromCharCode((o = tab2[i]));		//将 Unicode 编码转为一个字符 p最后是pass的前6位的字符串也就是 P= FAUX P
                        if(i == 5)break;
						}
                    for(i = (o=0); i < (k = j = n); i++ ){
                        o = tab[i-l];
                        if(i > 5 && i < k-1)p += String.fromCharCode((o = tab2[i]));		//跟上边类似,从第六个开始再往后加 P= FAUX PASSWORD HAH
                        }
        p += String.fromCharCode(tab2[17]);  //P= FAUX PASSWORD HAHA   我去感觉被玩了
        pass = p;
		return pass;
    }
    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"));
	//上边的转译一下
    h = window.prompt('Enter password');
    alert( dechiffre(h) );

被玩了,用那个一堆/x的解码

image-20211024202616250

在解码

image-20211024202806785

出来了,合着我这代码都快看瞎了,啥用没有

payload:

Cyberpeace{786OsErtk12}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值