攻防世界-新手练习区

新手练习过程~ 👇

目录

001:view_source

002:robots

003:backup

004:cookie

005:disabled-button

006:weak-auth

007:simple_php

008:get_post

009:xff_referer

010:webshell

011:command_execution

012:simple_js


001:view_source

打开网页,只有一句话:

 查看源代码:

1)右击 -> 检查元素(右击不了)

2)"f12":

 3)"view-source:网址" 或者 快捷键Ctrl+u:


002:robots

本题考察的是robots协议

robots.txt是一个协议,不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,它告诉蜘蛛程序(网络爬虫)在服务器上什么文件是可以被查看的。
下面是来自百度的进一步解释👇:

 差不多,开始做题:

打开网页,啥也没有😵,f12查看源代码:

 flag不在源代码中。根据开始介绍的知识,尝试访问robots.txt文件:

 出现了一个php文件,访问再说:

 找到√😁


003:backup

一般的备份文件的后缀为.bak

打开网页,出现了一句疑问句:

 根据页面提示,尝试访问index.php.bak文件:

 下载打开:


004:cookie

根据题目描述:cookie里放了东西

访问页面,并用bp抓包:(也可以 f12 ->网络->找出数据包->消息头->响应头 查看 )

 叫我看cookie.php,那看下:

根据页面显示,再看http响应:


005:disabled-button

打开页面,按不了按钮🤔:

 根据题目描述:“X老师今天上课讲了前端知识”。那看下前端代码:

在html中disabled属性会禁用按钮

发现有disabled属性,删掉它:

 按钮一点,出来了🤗:


006:weak-auth

打开页面,为登录表单:

 随便输入提交,显示用admin登录,即用户字段为admin:

上bp,发给intruder,我们尝试爆破password就好了:

 加载爆破字典:

 开始爆破,长度唯一,密码就它了:

账号密码登录:

 


007:simple_php

打开网页,出现一段php代码:

 阅读代码:
有a和b参数,都是通过get方式传入,flag分成了flag1和flag2;要获得flag1,需要满足“参数a等于0且为真”;要获得flag2,需要满足“参数b不是数字且b要大于1234”。

[小知识点]
1、php中,==是不严格的等于,只比较两个变量的值,不比较数据类型;===比较两个变量的值和类型;在php弱类型中,会使('1234a'==1234)为真;
2、is_numeric()函数:如果是数字和数字字符串则返回TURE,否则返回FALSE。

通过分析,构造其中一个payload:?a="0"&b=1234a:

 get√


008:get_post

打开网页,要用get方式提交一个名为a,值为1的变量。
直接在链接后面添加就行:

用post方式提交一个名为b,值为2的变量:
用火狐浏览器中的插件"hackbar"(安装后f12调出):

 执行后:


009:xff_referer

打开网页,显示:

 打开BP,抓包,发给Repeater,修改X-Forwarded-For字段为所要求的ip:
(XFF字段是用来识别最原始的IP地址的HTTP请求头字段)

返回数据包中,说要指定来源:

 因原数据包中没有referer字段,故添加referer字段,来设置来源:
(referer字段会记录该http请求的来源地址)

 get√:


010:webshell



可以看到,是php的一句话木马

用工具“中国菜刀”(方便快捷);右击添加:

编辑好后,双击,进入:

 双击打开flag.txt就有了√


011:command_execution

打开网页,用 "127.0.0.1|ls" 测试一下(也可以 "127.0.0.1&ls"、"127.0.0.1&&ls"):

可以看到,它执行了ls命令;

 找到根目录为上三级:


 为了方便快捷,用python编写简易爬虫小脚本:

import requests
url="http://111.200.241.244:60330/"
list=['bin','boot','dev','etc','home','lib','lib64','media','mnt','opt','proc','root','run','run.sh','sbin','srv','sys','tmp','usr','var']
for i in list:
	p={"target":"127.0.0.1|ls ../../../%s"%i}
	r=requests.post(url,data=p).text
	if "flag" in r:
		print("flag in:",i)
		break

 

 找到flag在home目录下,列出home目录看看:

 
用cat命令查看flag.txt的内容:

 


012:simple_js

打开网页,一个输入框:

 右击,查看页面源代码:

 是一段js代码,有点乱。。。 复制下来,整理一下,进行代码审计🙃:

存在可疑字段 “\x35\x35\x2c....”

 [小知识点]:
js中,fromCharCode()方法的作用是 将Unicode编码转为一个字符

因为最后处理的是tab2的值,为了方便,删掉一些无用变量(包括tab1):


把两个for循环合并一下:

 把可疑字段换到上面:

保存,用网页打开:

 根据题目提示:Flag格式为 Cyberpeace{xxxxxxxxx}
所以Flag为 Cyberpeace{786OsErtk12} 🤗

 本题参考攻防世界中的Writeup

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小咩杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值