作者:一直很哇塞. | 来源:互联网 | 2023-09-16 13:58
攻防世界新手区目录:1.view_source2.robots3.backup4.cookie5.disabled_button6.weak_auth7.simple
攻防世界新手区 目录: 1. view_source 2. robots 3. backup 4. COOKIE 5. disabled_button 6. weak_auth 7. simple_php 8. get_post 9. xff_referer 10. webshell 11. command_execution 12. simple_js
目录:
1. view_source
这个题很明显的,只需要查看源代码就能看到 flag,但是不能鼠标右键 这里可以直接按 F12
键或者 Fn+F12
即可 也可以在URL前面加上 view-source:
查看源代码
2. robots
# robots协议 1. robots协议也叫robots.txt,是一种存放于网站根目录下的ASCII编码的文本文件 2. robots.txt 文件通常用来告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。 3. 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。 4. robots.txt应放置于网站的根目录下。
通过 robots
协议,直接访问根目录下的 robots.txt
文件,得到还存在一个 f1ag_1s_h3re.php
文件
访问链接 http://111.200.241.244:53876/f1ag_1s_h3re.php
,获得 flag
3. backup
通过提示,此题考的是备份文件泄露,一般备份文件的后缀名是 .bak
直接访问 index.php.bak
下载,打开看到 flag
4. COOKIE
题目名字和提示考的是 COOKIE
,所以进入链接,右键选择检查 在 Network
中 Headers
里面找到 COOKIE
(需要刷新一下),找到 COOKIE.php
文件
访问 COOKIE.php
文件,在 Response Headers
中看到 flag
5. disabled_button
6. weak_auth
这里提示 随手设了一个密码 ,然后是登陆页面,所以优先考虑弱口令 输入用户名 admin
,密码 123456
即可 7. simple_php
一个简单的PHP审计,需要使用 GET 方式提交两个变量
a
变量使用的是弱类型比较 ==
,需要等于0
,但是单独使用时不是0
,由于是弱类型比较,使用 0a
即可绕过(这里可以是 0b
, 0abc
等类型的都行)
b
变量有两个判断,一个是要求不能是数字,然后要求值大于1234
,同样的可以使用弱类型比较绕过
访问链接:http://111.200.241.244:50716/?a=0a&b=12345a
,获得 flag
8. get_post
考察简单的GET和POST两种提交方式,推荐使用浏览器插件 HackBar
(也可以使用 burpsuite 抓包修改也可)
9. xff_referer
考察的是 xff
和 referer
xff
也即 X-Forwarded-For
,作用是使Web服务器获取访问用户的IP真实地址,但可以伪造referer
用来告诉浏览器当前连接是从哪个链接跳转过来的
使用工具 burpsuite
抓包,发送到 Repeater
模块处理(也可以不用,但是通常这么做,用来处理数据比较方便,推荐使用)
根据提示,在信息中添加 xff
信息,查看 Response
返回的信息,需要伪造 referer
再添加 referer
字段信息,获得 flag
10. webshell
内容考察PHP一句话,这里可以使用蚁剑,菜刀直接连接,然后查看文件,获得 flag
但由于这里的一句话使用的是 eval()
函数,能够将里面的内容变成字符串使用,可以理解为变成文件中的代码。
嘿嘿,所以直接使用 POST 提交一个 shell
变量,然后变量的内容传入 system()
函数即可,就能直接调用系统命令,这么使用会方便很多,但需要注意,传入的内容需要加上一个分号 ;
传入 shell=system('ls');
看到当前页面有一个 flag.txt
文件,所以直接 cat flag.txt
即可
11. command_execution
传入 127.0.0.1
,就是简单的 ping
命令
使用命令 id
看到能够执行命令,所以内容也很简单,就是很简单的命令执行,使用 ;
作为间隔,用来执行两条命令
直接 find / -name flag.*
,获得 flag 文件的路径 拿到路径后,直接 cat
即可
12. simple_js
进入链接,弹出一个验证窗口,需要输入密码,但是尝试好几个都是同样的结果
直接右键查看代码,看有没有什么好东西,发现了一堆JS代码,里面定义一个函数 dechiffre
,能用来处理传入的ASCII码内容
< html> < head> < title> JS title> < script type &#61; " text/Javascript" > function dechiffre ( pass_enc ) { var pass &#61; "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65" ; var tab &#61; pass_enc. split ( &#39;,&#39; ) ; var tab2 &#61; pass. split ( &#39;,&#39; ) ; var i, j, k, l &#61; 0 , m, n, o, p &#61; "" ; i &#61; 0 ; j &#61; tab. length; k &#61; j &#43; ( l) &#43; ( n &#61; 0 ) ; n &#61; tab2. length; for ( i &#61; ( o &#61; 0 ) ; i < ( k &#61; j &#61; n) ; i&#43;&#43; ) { o &#61; tab[ i - l] ; p &#43;&#61; String. fromCharCode ( ( o &#61; tab2[ i] ) ) ; if ( i &#61;&#61; 5 ) break ; } for ( i &#61; ( o &#61; 0 ) ; i < ( k &#61; j &#61; n) ; i&#43;&#43; ) { o &#61; tab[ i - l] ; if ( i > 5 && i < k - 1 ) p &#43;&#61; String. fromCharCode ( ( o &#61; tab2[ i] ) ) ; } p &#43;&#61; String. fromCharCode ( tab2[ 17 ] ) ; pass &#61; 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 &#61; window. prompt ( &#39;Enter password&#39; ) ; alert ( dechiffre ( h) ) ; script> head> html>
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"));
代码里面发现这里调用了函数&#xff0c;还有下面的 alert()
&#xff0c;但没啥关系 看到这个 \x
&#xff0c;十六进制编码&#xff0c;直接右键检查&#xff0c;丢在 Console
中解码&#xff0c;获得ASCII码内容
用python写几行代码&#xff0c;将ASCII码转为字符串&#xff0c;然后前面的提示中有flag格式为Cyberpeace{}
所以将内容放进去尝试一下&#xff0c;成功 asciis &#61; "55,56,54,79,115,69,114,116,107,49,50" alist &#61; asciis. replace( &#39;,&#39; , &#39; &#39; ) . split( &#39; &#39; ) for i in alist: print ( chr ( int ( i) ) , end&#61; &#39;&#39; )
Cyberpeace{786OsErtk12}