攻防世界Web新手练习区题目(view_source到simple_php)WP

280 阅读7分钟

view_source

image.png 获取在线场景后访问题目场景

image.png 在右键不管用的情况下,可以使用f12或者ctrl+u查看网页源代码,在这里找到flag。

image.png

image.png cyberpeace{89390b6098f65c1a6907982df4ab8f7f}

robots

image.png robots协议也称爬虫协议、爬虫规则等,是指网站建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。 搜索引擎则通过读取robots.txt文件来识别这个页面是否允许被抓取。 查看这个网页的robots.txt。

image.png 再访问f1ag_1s_h3re.php,就是将robots替换为f1ag_1s_h3re.php即可得到flag。

image.png

Training-WWW-Robots

image.png

image.png 打开后可以看到很多英文,可以翻译一下。

image.png 和上一题类似,需要访问robot文件

image.png 再访/fl0g.php即可找到flag。

image.png

PHP2

image.png

image.png 翻译一下 image.png

PHP2是服务器端脚本语言,主要用于处理和生成网页的内容,当用户访问一个网站时,PHP脚本会在服务器上执行,生成动态的HTML页面,然后将页面发送给用户的浏览器进行显示。

常见的 PHP 脚本通常是保存在以 .php 为扩展名的文件上。这些文件可以存储在web 服务器的文档根目录中,以便通过浏览器访问和执行 所以可以先尝试index.php文件。

image.png

能访问,意味着存在这样的脚本文件。 php文件源代码一般放在phps文件上,我们可以尝试一下。

image.png 发现了php的文件源代码。 字母的url码就是每一个字母的ascll码,以%+16进制的形式定义

‘a’,‘d’,‘m’,‘i’,‘n’的ascll码的16进制为‘61’,‘64’,‘6d’,‘69’,‘6e’

而浏览器会自动翻译一遍url码,导致最后与直接输入admin没有区别,这时我们想办法再套一层url。而%也是一种特殊字符,可以将它再套一次,搜索后发现%是%25。 所以尝试输入%2561dmin

image.png 发现了flag为cyberpeace{feee169d698b9d1d8354ba7f9779057c}

image.png 解答完成。

get_post

image.png 考察http通常使用的两种请求方式。

image.png 按f12打开hackbar

image.png

点击load加载网页

image.png 提交时先写一个问号再写上a等于1。注意要是英文问号。

image.png 点击excute发送,之后又要我们以post方式提交。

image.png 打开use post method

image.png 在body那里写上b=2

image.png excute后即可得到flag。

image.png

backup

image.png backup就是备份文件的意思。

image.png

image.png 备份文件有很多后缀,可以一个一个去尝试。

image.png

发现是bak文件,回车后会自动进行下载。

image.png

image.png 打开记事本得到flag提交

image.png 如果不想一个一个去试还可以使用kali软件进行路径扫描。

cookie

image.png

image.png

image.png 鼠标按右键,检查,找到应用application。

image.png

image.png 然后访问右边出现的cookie.php

image.png response就是响应。

image.png 而在network里面我们可以查看response,所以我们从application切换到network。

image.png 点击cookie.php。

image.png 在headers下翻找到flag提交即可完成这题。

disabled_button

image.png 不能按的按钮。

image.png 先查看源代码,没发现什么信息。

image.png 再使用f12检查。发现没有cookies值,使用network抓包也发现什么都没有。 所以想到题目是前端,所以点击element。看前端代码

image.png

image.png 右边代码中选到一个不能按的按钮下面那行时按钮亮了,说明找到了按钮的这行代码,可以看到这是一个表格且发送的是post请求

image.png 展开,看到disabled这行,尝试修改

image.png 右键以html格式修改。

image.png 直接删除掉disabled,此时点击其它行解除修改后发现按钮能点击了。

image.png

image.png 点击按钮后就出现了flag。最后提交即可。

simple_js

image.png 点开靶机后可以直接输入密码,但是是输不对的。 然后我们点开源代码。

image.png 可以发现一长串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)

这样得到结果。

image.png Cyberpeace{xxxxxxxxx},放进xxx里即可得到flag。

xff_referer

image.png

image.png xff就是识别ip地址的http请求头字段。

image.png

image.png referer可以显示网址的来源。 hackbar可以进行发包,我们打开hackbar点击load

image.png 下面可以更改header

image.png 通过xff的header去访问题目给我们的ip地址

image.png 发送后告诉我们必须来自谷歌

image.png 再次修改header,并且使用referer并且使用他给我们的网址

image.png 然后就能得到flag

weak_auth

image.png 弱认证

image.png

image.png 随便输入之后告诉我要以admin的形式登录。

image.png 打开burp的拦截,将名字使用admin,密码随便,可以看到burp拦截了数据包。

image.png 将这个数据包发送到repeater,重发器,然后发送。

image.png 可以看到response里告诉我们密码错误。 并且题目告诉我们需要一个密码字典。 将包发生到intruder,攻击器。 选择sniper,修改payloads。

image.png 点击payload里的load,将blasting-dictionary里的常用密码导入。

image.png 常用密码github里有,可以去下载。

image.png 回到上一个页面,选择爆破的地点,点击Add选择密码add,可以发现图标有变化。

image.png 最后点击start attack开始攻击。状态码(status code)为200就代表成功。 等待爆破完成。密码正确时显示的length是不同的,根据这一点可以判断出正确的代码。

image.png 发现密码为123456,从而得到flag cyberpeace{fc155350c0dda4d8257867bc0a3d8a32}

command_execution

image.png 先尝试ping一下本地回环,127.0.0.1

image.png ping完后发现返回的有-c,而-c代表是linux的操作系统。 所以我们可以尝试拼接来绕过ping,可以一条命令后接分号再接命令,此时linux会先进行第一条命令再执行第二条命令,也可以使用管道符号连接,此时会只执行后面那条命令,只会显示后面的那条命令的结果。

image.png 这样做后看到出现了index文件。ls是用于查看当前目录的。

image.png 查看环境变量,发现是个apache的服务。

image.png 查看根目录。

image.png 查看根目录下的home目录发现flag.txt。

image.png 使用cat指令去查看home目录下的flag文件。发现了flag。

cyberpeace{bfd162c9f242eb8d1b3f50391ed8dbce}

要是没有发现flag在home目录下,可以使用find命令去查找。

image.png 这个linux指令查找根目录下的名为flag.txt的文件。

simple_php

image.png

image.png 打开后可以看到这是一个php的代码审计问题。 给a赋值一个‘a’ 给b赋值一个‘b’

image.png 两个等于是一个松散比较,发现当我们传入一个字符串时,在php8.0.0前的版本字符串与0==也代表为true。

image.png 给a传入一个字符串后,if判断时,前面为true,后面因为是字符串也为true,所以得到flag1。 使用&符号可以同时传递参数。

image.png 这里表示b不能是数字,是数字或数字字符串就退出。 但是我们可以输入9999a,在后面加上一个a,这样就不是数字也不是数字字符串,但它可以与后面的1234进行比较,从而得到flag2。

image.png

image.png web新手区这11道题就写完了。