RCE
RCERCE(remote command/code execute,远程命令执行)漏洞:以PHP为例,system、exec、shell_exec、passthu、popen、proc_popen等函数可以执行系统命令。当我们可以控制这些函数的参数时,就能运行我们想运行的命令,从而进行攻击。 命令拼接符号(Linux) |:管道符,前面命令标准输出,后面命令的标准输入,或者说将前面的命令的输出内容作为后一个命令的标准输入,比如: 123echo "JGZsYWc9WkxBUllZezJMNDd5WX0="|base64 -d输出内容:$flag=ZLARYY{2L47yY} 当然,就算后面的命令不需要输入内容也可以执行: 123echo "You are "|whoami输出内容:ZLARYY //whoami命令执行的结果,可以看到不会输出前面的命令执行的内容 &:将前面的命令放在后台执行,不等前面的命令执行结束就开始执行后面的命令,还有一种用法是在一行命令末尾加上&符号使其放在后台运...
SQL
SQL所谓SQL注入,就是通过把SQL命令插入到WEB表单提交或输入域名或页面请求的 查询字符串,最终达到欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。 字符型注入字符型注入需要闭合符 1$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; 提交/?id=1’ and 1=1结果为: 1$sql="SELECT * FROM users WHERE id='1' and 1=1' LIMIT 0,1"; 这时候就多出来了一个’,所以我们需要用注释符(–+或%23或#)将后面的内容注释掉 常见的闭合符有:’ “ ‘) “) 其他 假设我们无法查看源码的时候我们怎么判断闭合符是什么: 我们可以尝试输入两种不同的闭合符: 我们传入的内容是/?id=1'" 报错内容是: 1You have an error in your SQL syntax; check the ...
php反序列化
php反序列化php序列化:序列化字符串:在学习反序列化之前需要了解什么是php序列化: 序列化是将对象转化为可存储或传输的字符串格式的过程。在php中,可以使用serialize()函数将对象,数组或其它数据类型序列化称为一个字符串,以便将其保存到文件或者进行网络传输。 通过以下代码,我们可以实现将一个对象序列化操作并输出序列化字符串: 12345678910111213<?phpClass ZLARYY{ public $xiexie = 2; public $Chesmond = "L47yY"; public $Arach = true; function ECH(){ return "ZLARYY!!!"; }}$ZL47yY = new ZLARYY();$serialized = serialize($ZL47yY);print_r($serialized); 注意输出序列化字符串只能使用var_dump或者print_r,不能使用e...
SSRF
SSRFSSRF:服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。 SSRF 漏洞出现的场景 : 能够对外发起网络请求的地方,就可能存在 SSRF 漏洞 从远程服务器请求资源(Upload from URL,Import & Export RSS Feed) 数据库内置功能(Oracle、MongoDB、MSSQL、Postgres、CouchDB) Webmail 收取其他邮箱邮件(POP3、IMAP、SMTP) 文件处理、编码处理、属性信息处理(ffmpeg、ImageMagic、DOCX、PDF、XML) 相关的函数 file_get_contents: 这个函数的本意是读取文件内容到字符串,但它也支持使用HTTP、FTP等协议读取远程资源。当开发者直接使用$_GET['url']这样的用户输入作为参数时,攻击者就可以构造恶意URL。 1234<?p...
