SSRF服务器请求伪造 一、概述 1.定义 攻击者通过伪造服务器发送对其他内网服务器的请求,来访问本不应由外网访问到的内部资源。 这种漏洞一般出现在由用户提供地址,服务器主动请求该地址的功能上,如解析外部图片地址,通过url下载外部文件。 当攻击者找到可利用的ssrf漏洞或者获得服务器一定权限的时候可以通过该服务器发送内网请求,扫描内网服务及端口,…
CSRF跨站请求伪造 一、概述 1.定义 攻击者利用服务器对用户的信任,从而欺骗受害者去服务器上执行受害者不知情的请求。 在CSRF攻击场景中,攻击者会伪造一个请求(一般为链接),然后欺骗用户点击,用户一旦操作,整个攻击就完成了,所以CSRF攻击也被称为“one click”攻击。 2.与XSS的区别 XSS使利用用户对服务端的信任,CSRF是利用…
文件操作类漏洞防御 一、文件包含 1.绕过 实际环境中不都是include $_GET['file']这样直接把变量传入包含函数的。在很多时候包含的变量/文件不是完全可控的,如以下代码指定了前缀和后缀 目录穿越绕过指定前缀,构造file = ../../../../etc/passwd 编码绕过前缀:../的编码为%2e%2e%2f 二次编码逃过前…
文件下载漏洞 一、漏洞PHP源码 // 获取店端清酒的文件名 $file_path = $GET['filename']; // 设置响应头为附件下载而非内容读取 Header("Contnet-type: application/octet-stream"); Header("Content-Di…
文件上传漏洞 一、漏洞成因 没有对上传的文件进行判断,导致用户可以直接上传恶意php等文件,从而达到上传木马。 优化:可以进行前端对文件后缀校验,禁止用户上传不合法文件。 直接禁用JS可以绕过JS对文件后缀的校验,但是不建议禁用JS,因为这会直接禁用掉所有JS,有可能导致其他功能失效。 优化:使用ajax实现上传功能,防止用户通过禁用JS上传恶意文…
文件包含漏洞 一、本地文件包含 1.源代码 $filename = $_GET['filename']; include $filename; echo "欢迎来到PHP世界" 2.利用条件 php.ini中allow_url_fopen=On(默认开启)和allow_url_include=off(默认关闭…
其他注入 一、更新注入 所有更新类操作,只返回布尔型结果,不会返回数据,所以无法像select一样进行多样化处理,所以更新类操作的核心就是构建报错注入的payload insert into user(username, password, role) vlues('wowo' or updatexml(1, concat(0x7e,databas…
SQLMap 一、支持模式 基于布尔盲注,即可以根据返回页面判断条件真假的注入。 基于时间盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。 基于报错注入、即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。 联合查询注入、可以使用union的情况下的注入。 堆查询注入、可以同时…
盲注 一、适用场景 没有回显的时候 二、Boolean型盲注 Boolean是基于真假的判断,不管输入什么,结果都只返回真或假两种情况。Boolean型盲注的关键在于通过表达式结果与已知值进行逐个对比,根据对比结果判断正确与否。 盲注有时候需要一个一个字符猜,因此一些字符串操作的函数经常被应用到 length():返回查询字符串长度 mid(col…
错误注入 一、原理 报错注入在没法用union联合查询时用,但前提还是不能过滤一些关键的函数。 报错注入就是利用了数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中。 对于INSERT和UPDATE语句同样可以使用报错注入的方式 二、Xpath语法错误 利用xpath语法错误来进行报错注入主要利用extractvalue和upd…
文件读写与木马植入 一、读写权限确认 show global variables like '%secure%'; # 查看mysql全局变量的配置,当输入以上命令后,结果 secure_file_priv = 空 的时候,任意读写 secure_file_priv = 某个路径的时候,只能在规定的路径下读写 secure_fi…
SQL注入-查询注入 一、寻找注入点 在参数后面添加单引号或双引号,查看返回包,如果报错或者长度变化,可能存在Sql注入 通过构造get、post、cookie请求再相应的http头信息等查找敏感信息 通过构造一些语句,检测服务器中响应的异常 二、普通注入 1.数字型 加单引号,URL:xxx.xxx.xxx/xxx.php?id=3'; 对应的s…
SQL注入-登录漏洞 一、实现原理 1.环境准备 在Linux主机上准备一套Xampp:模拟攻防。 在VSCode利用Remote Development进行远程调试。 在Lampp的htdocs目录下创建security目录,用于编写服务器PHP代码。 2.编写login.html <!DOCTYPE html> <html l…
渗透测试基础 一、法律 渗透测试需要授权的场景: 帮助客户提供渗透测试服务,进而实现安全加固 针对非客户的自由系统,则建议获取授权后进行测试 保留任何可以作为已授权的证据 不需要授权的情况: 针对开源的产品型系统,如Linux,Apache, MariaDB, Tomcat, Redis等 针对自己的系统 针对闭源的产品型软件,也可以在未经产品厂商…
泛洪 一、基础 1.什么是泛洪 泛洪的基本原理就是基于协议通信,完成大流量高并发操作,导致目标主机各类资源消耗过多资源而无法提供正常服务。基于多线程或多进程(MAC地址泛洪、ARP泛洪欺骗) 2.利用条件 供给端和目标主机之间能够正常通信 目标主机没有配置很好防御措施 3.使用socket三次握手泛洪 def socket_flood(): whi…