php常见的绕过方法.md

php常见的绕过方法

1. 前端绕过

1-1. js绕过:

  1. 通常的情况下,一些题目的首个阻碍点就是前端的认证。也就是js验证的方式。
  2. 那么我们可以使用浏览器自带的调试器的功能直接对前端认证的地方进行修改。比如直接删除验证点的代码。这样可以直接绕过验证。或者使用浏览器的插件可以实现禁用js的功能。
  3. 2.或者我们可以使用修改可以上传的文件的类型限制的方式实现绕过。有时我们遇到的题目可能会有相关的js代码那么我们可以通过修改相关的代码来添加我们需要上传的文件类型。这样可以直接上传成功。
  4. 3.使用burpsuite的功能进行绕过。
    我们通过burpsuite 的抓包的方式可以通过抓取上传时的信息,在burpsuite中进行修改文件的后缀。
    比如我们可以伪装成jpg文件或者gif文件进行绕过。
    通过以上的几种方式我们可以进行基础的绕过。可以基本应对基本的题目。

2. 后端绕过

2-1. 后端检测content_type:

有的时候php使用的检测方式是检测content_type,我们上传一个php文件的时 候,通过burpsuite 的抓包的方式可以看到我们的content_type为application/octet_stream。我们只需要更改我们的.jpg后缀的conten_type为image/jpeg。
之后我们进行发包可以看到我们绕过了基于content-type的检测机制。

2-2. 后端检测文件内容。

有的时候我们只是简简单单的使用之前的几种方法只是可以绕过一些基础的题目。而有些题目的后端检测会更加严格。比如有的会检测文件的文件头内容。比如我们使用的一句话木马可能会因为这一机制被检测出来不符合安全规定。那么这时候我们需要给我们的文件加入相应的文件头进行欺骗。比如我们可以在文件头加入“GIF89a”的gif特征文件头这样后端的检测机制会检测我们的文件头并认为我们是一个gif文件。这样我们就可以进行上传。

2-3. 后端检测——后缀检测

后端有时候会有单纯的黑名单进行检测,那么我们可以使用一下几个方法进行绕过:

  1. 后缀的大小写混用。
    我们可以使用类似.Php的后缀的方式,可以过一些基础的系统。
  2. 双写后缀:
    在一些后端验证中仅仅使用了类似于正则的方式进行了后缀的检测。那么我们可以构造类似.phphpp的形式的后缀形式。当后端程序将我们的检测到的文件的后缀更改后,剩下的内容又变为了我们需要的文件后缀。
  3. 同义后缀
    有一些的文件后缀不仅仅有一个文件后缀可以使用,有一些不常用的后缀没有被检测的情况下我们可以使用其他同义的后缀进行绕过。
    如:php3, phtml
posted @ 2020-08-13 23:13  懒得起名了,,  阅读(2408)  评论(0编辑  收藏  举报