Web Security

note of class

Posted by Jackson on September 4, 2020

Web安全

DVWA是一款基于PHP和mysql开发的web靶场练习平台,集成了常见的web漏洞如sql注入,xss,密码破解等常见漏洞。

一句话木马的强大与中国菜刀等WebShell管理工具密不可分

​ webshell就是以aspphp、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

文件上传漏洞

由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致攻击者能够向某个可以通过WEB访问的目录上传恶意文件,并被脚本解析器执行,这样就可以在远程服务器上执行恶意脚本。

文件包含

服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。

文件包含函数

PHP中文件包含函数有以下四种:

require()

require_once()

include()

include_once()

includerequire区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

include_once()require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

漏洞产生原因

文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。

示例代码

<?php
    $filename  = $_GET['filename'];
    include($filename);
?>

例如:

$_GET['filename']参数开发者没有经过严格的过滤,直接带入了include的函数,攻击者可以修改$_GET['filename']的值,执行非预期的操作。

跨站脚本攻击

是一种迫使Web站点回显

server

<? php
echo $_GET["name"]
php>

发送url

….?name=

By pass trick

  • 大小写
  • 双写关键字
  • 黑名单
  • 反引号代替括号
  • 编码绕过

命令注入

条件竞争

开发者在进行代码开发时常常倾向于代码会以线性的方式执行,而且他们忽视了并行服务器并行执行,常常会导致意想不到的错误。