目录
view_source
robots
Training-WWW-Robots
PHP2
get_post
backup
simple_js
xff_referer
weak_auth
command_execution
simple_php
view_source
获取在线场景后访问题目场景
在右键不管用的情况下,可以使用f12或者ctrl+u查看网页源代码,在这里找到flag。
cyberpeace{89390b6098f65c1a6907982df4ab8f7f}
robots
robots协议也称爬虫协议、爬虫规则等,是指网站建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。 搜索引擎则通过读取robots.txt文件来识别这个页面是否允许被抓取。 查看这个网页的robots.txt。
再访问f1ag_1s_h3re.php,就是将robots替换为f1ag_1s_h3re.php即可得到flag。
Training-WWW-Robots
打开后可以看到很多英文,可以翻译一下。
和上一题类似,需要访问robot文件
再访/fl0g.php即可找到flag。
PHP2
翻译一下
PHP2是服务器端脚本语言,主要用于处理和生成网页的内容,当用户访问一个网站时,PHP脚本会在服务器上执行,生成动态的HTML页面,然后将页面发送给用户的浏览器进行显示。
常见的 PHP 脚本通常是保存在以 .php
为扩展名的文件上。这些文件可以存储在web 服务器的文档根目录中,以便通过浏览器访问和执行 所以可以先尝试index.php文件。
能访问,意味着存在这样的脚本文件。 php文件源代码一般放在phps文件上,我们可以尝试一下。
发现了php的文件源代码。 字母的url码就是每一个字母的ascll码,以%+16进制的形式定义
‘a’,‘d’,‘m’,‘i’,‘n’的ascll码的16进制为‘61’,‘64’,‘6d’,‘69’,‘6e’
而浏览器会自动翻译一遍url码,导致最后与直接输入admin没有区别,这时我们想办法再套一层url。而%也是一种特殊字符,可以将它再套一次,搜索后发现%是%25。 所以尝试输入%2561dmin
发现了flag为cyberpeace{feee169d698b9d1d8354ba7f9779057c}
解答完成。
get_post
考察http通常使用的两种请求方式。
按f12打开hackbar
点击load加载网页
提交时先写一个问号再写上a等于1。注意要是英文问号。
点击excute发送,之后又要我们以post方式提交。
打开use post method
在body那里写上b=2
excute后即可得到flag。
backup
backup就是备份文件的意思。
备份文件有很多后缀,可以一个一个去尝试。
发现是bak文件,回车后会自动进行下载。
打开记事本得到flag提交
如果不想一个一个去试还可以使用kali软件进行路径扫描。
cookie
鼠标按右键,检查,找到应用application。
然后访问右边出现的cookie.php
response就是响应。
而在network里面我们可以查看response,所以我们从application切换到network。
点击cookie.php。
在headers下翻找到flag提交即可完成这题。
disabled_button
不能按的按钮。
先查看源代码,没发现什么信息。
再使用f12检查。发现没有cookies值,使用network抓包也发现什么都没有。 所以想到题目是前端,所以点击element。看前端代码
右边代码中选到一个不能按的按钮下面那行时按钮亮了,说明找到了按钮的这行代码,可以看到这是一个表格且发送的是post请求
展开,看到disabled这行,尝试修改
右键以html格式修改。
直接删除掉disabled,此时点击其它行解除修改后发现按钮能点击了。
点击按钮后就出现了flag。最后提交即可。
simple_js
点开靶机后可以直接输入密码,但是是输不对的。 然后我们点开源代码。
可以发现一长串js代码。 里面有一串似乎可以被解码的字符串。 \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 所以我们使用python,将这串字符串转化为数字,再将数字转化为ascii码即可得到flag。
pycharm启动!
s = "\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"
new_s = s.split(",")
print(s)
# 以逗号为分隔得到一个列表
result = ""
for i in new_s:
i = chr(int(i))
#使用for循环,将每个字符转化为int类型再转化为chr类型
result += i
print(result)
这样得到结果。
Cyberpeace{xxxxxxxxx},放进xxx里即可得到flag。
xff_referer
xff就是识别ip地址的http请求头字段。
referer可以显示网址的来源。 hackbar可以进行发包,我们打开hackbar点击load
下面可以更改header
通过xff的header去访问题目给我们的ip地址
发送后告诉我们必须来自谷歌
再次修改header,并且使用referer并且使用他给我们的网址
然后就能得到flag
weak_auth
弱认证
随便输入之后告诉我要以admin的形式登录。
打开burp的拦截,将名字使用admin,密码随便,可以看到burp拦截了数据包。
将这个数据包发送到repeater,重发器,然后发送。
可以看到response里告诉我们密码错误。 并且题目告诉我们需要一个密码字典。 将包发生到intruder,攻击器。 选择sniper,修改payloads。
点击payload里的load,将blasting-dictionary里的常用密码导入。
常用密码github里有,可以去下载。
回到上一个页面,选择爆破的地点,点击Add选择密码add,可以发现图标有变化。
最后点击start attack开始攻击。状态码(status code)为200就代表成功。 等待爆破完成。密码正确时显示的length是不同的,根据这一点可以判断出正确的密码。
发现密码为123456,从而得到flag cyberpeace{fc155350c0dda4d8257867bc0a3d8a32}
command_execution
先尝试ping一下本地回环,127.0.0.1
ping完后发现返回的有-c,而-c代表是linux的操作系统。 所以我们可以尝试拼接来绕过ping,可以一条命令后接分号再接命令,此时linux会先进行第一条命令再执行第二条命令,也可以使用管道符号连接,此时会只执行后面那条命令,只会显示后面的那条命令的结果。
这样做后看到出现了index文件。ls是用于查看当前目录的。
查看环境变量,发现是个apache的服务。
查看根目录。
查看根目录下的home目录发现flag.txt。
使用cat指令去查看home目录下的flag文件。发现了flag。
cyberpeace{bfd162c9f242eb8d1b3f50391ed8dbce}
要是没有发现flag在home目录下,可以使用find命令去查找。
这个linux指令查找根目录下的名为flag.txt的文件。
simple_php
打开后可以看到这是一个php的代码审计问题。 给a赋值一个‘a’ 给b赋值一个‘b’
两个等于是一个松散比较,发现当我们传入一个字符串时,在php8.0.0前的版本字符串与0==也代表为true。
给a传入一个字符串后,if判断时,前面为true,后面因为是字符串也为true,所以得到flag1。 使用&符号可以同时传递参数。
这里表示b不能是数字,是数字或数字字符串就退出。 但是我们可以输入9999a,在后面加上一个a,这样就不是数字也不是数字字符串,但它可以与后面的1234进行比较,从而得到flag2。
web新手区这11道题就写完了。