代码执行:"data" URL scheme

    data协议最初是用来在HTML中内嵌小图片的,以下代码是RFC2397中的一段示例代码:

<img src="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PHhhx4dbgYKAAA7">

或者是为本地应用程序传递参数。

    基本格式:

data:[<mediatype>][;base64],<data>

mediatype: [type "/" subtype] * (";" parameter)
data: *urlchar
parameter: attribute "=" value

    mediatype的默认值是:

text/plain;charset=US-ASCII

    php 5.2以上版本提供了stream wrappers,支持data。

    基本利用形式:

?file=data:text/plain;base64,base64_exploit_code

优点:

  • 不需要远程服务器进行远程文件包含;
  • 可以绕过防火墙的出站规则;

使用条件:

  • allow_url_fopen和allow_url_include必须全部开启

 参考链接:

  1. https://www.rfc-editor.org/rfc/rfc2397#:~:text=RFC%202397%20The%20%22data%22%20URL%20scheme%20August%201998,of%20such%20types%20using%20the%20%22data%22%20URL%20scheme.
  2. https://www.idontplaydarts.com/2011/03/php-remote-file-inclusion-command-shell-using-data-stream/
posted @ 2022-08-18 16:32  泓溪  阅读(79)  评论(0)    收藏  举报