参考教程:https://blog.csdn.net/yisosooo/article/details/101076796
第一题 view-sourse
这个签到题,直接F12就好了。
第二题 get_post
第三题 robots
刚打开链接,一片空白,给url后面直接加上robots.txt,出现f1ag_1s_h3re.php
然后给url后面加上f1ag_1s_h3re.php ,得到flag。
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。
第四题 backup
index.php的备份文件名为:index.php.bak。
下载弹出的文件,拿到flag。
第五题 cookie
打开链接,说是cookie文件,那就在url中加上cookie.php,如图所示
抓包,放到repeater里,返回头部看到flag
第六题 一个不能按的按钮
将disabled=“” 删掉就可点击,取得flag
第七题 simple_js
先随便输入一个密码,进去之后F12
发现一串真密码的16进制编码,先转化成10进制,即就是55,56,54,79,115,69,114,116,107,49,50
(我用的解码工具来自 https://www.xssav.com/)
然后十进制用ascii解码,得到
786OsErtk12规范一下flag格式: Cyberpeace{786OsErtk12}
第八题 xff_referer
xff是x-forwarded-for的缩写,xff和referer都是可以伪装的,所以
在header头里添加:x-forwarded-for:123.123.123.123
referer:https://www.google.com就好了
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
第九题 weak_auth
x先随便输了一个账号密码,然后弹框“ please login as admin ”,估计账号是admin
F12, 看到这句话,感觉要爆破
爆破出来,密码是123456,登陆得flag
第十题 webshell
打开链接,是一个一句话木马
用蚁剑进行连接
连接成功之后,有个flag.txt,打开得到flag。
第十一题 command_execution
输入本地地址,有回显
尝试是否可以用命令行操作,显示index.php,说明可以操作命令
找到flag存储的文件地址
打开flag.php,拿到flag
第十二题 simple_php
PHP代码审计类题目。
flag分为两段,flag1和flag2。首先,flag1要求($a==0 and
a
)
,
利
用
P
H
P
弱
类
型
的
特
点
来
满
足
条
件
。
弱
类
型
指
P
H
P
语
言
使
用
“
=
=
”
时
候
,
会
将
字
符
串
转
化
成
相
同
类
型
,
再
进
行
比
较
。
数
值
和
字
符
串
比
较
时
,
会
将
字
符
串
转
换
为
数
值
。
构
造
?
a
=
0
q
w
e
,
会
将
0
q
w
e
转
化
为
0
,
满
足
条
件
,
得
到
f
l
a
g
1
。
另
外
,
可
以
使
用
科
学
技
术
法
来
满
足
条
件
,
当
0
e
123
与
0
比
较
时
,
会
将
0
e
123
转
换
为
数
字
,
0
的
幂
等
于
0
,
所
以
可
以
满
足
条
件
。
构
造
?
a
=
0
e
123
,
得
到
f
l
a
g
1
。
第
二
个
条
件
:
(
i
s
n
u
m
e
r
i
c
(
a),利用PHP弱类型的特点来满足条件。 弱类型指PHP语言使用“==”时候,会将字符串转化成相同类型,再进行比较。数值和字符串比较时,会将字符串转换为数值。 构造?a=0qwe,会将0qwe转化为0,满足条件,得到flag1。 另外,可以使用科学技术法来满足条件,当0e123与0比较时,会将0e123转换为数字,0的幂等于0,所以可以满足条件。构造?a=0e123,得到flag1。 第二个条件:(is_numeric(
a),利用PHP弱类型的特点来满足条件。弱类型指PHP语言使用“==”时候,会将字符串转化成相同类型,再进行比较。数值和字符串比较时,会将字符串转换为数值。构造?a=0qwe,会将0qwe转化为0,满足条件,得到flag1。另外,可以使用科学技术法来满足条件,当0e123与0比较时,会将0e123转换为数字,0的幂等于0,所以可以满足条件。构造?a=0e123,得到flag1。第二个条件:(isnumeric(b))。is_numeric()函数用来判断变量是否为数字或者数字字符串,如果是,返回TRUE。
分析代码发现,想得到flag2,要使变量b不是数字或者数字字符串,并且>1234。
为了满足条件,使用%00截断,使b不为数字或者数字字符串。构造?b=1235%00,得到flag2。
综上,构造?a=0qwe && b=1235%00,可得到完整的flag。
此题是直接看本文开头链接里大佬的做法照抄的。