欢迎来到田晓东的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

安全测试-渗透性测试

明文传输/存储(明文包括:1.请求中存在明文数据传输。2.内存明文传输用户名和密码。3.响应数据中存在明文用户名和密码等。4.客户端反编译存在明文。明文数据直接被攻击者利用并对系统进行攻击。)
越权访问(用户未授权可以访问其他用户的敏感数据。)
敏感信息泄漏(应用程序返回版本号、程序错误详细信息、中间件、SQL语句、系统文件等敏感信息)
上传/下载漏洞(系统可以上传任意类型文件,如php、bat、jsp、class等文件。这些文件可以直接在操作系统层面运行,应用系统存在被攻击风险。)
路径遍历漏洞(攻击者通过向上检索的方式获取服务器上重要文件。如:passwd或者win.ini文件等。存在重要文件信息泄漏风险。)
xss攻击(恶意攻击者将恶意脚本代码(如HTML代码和Javascript脚本)嵌入请求中,当用户在不知情的情况下访问时,就会执行其中的恶意代码,可能会导致cookie窃取、会话劫持、钓鱼欺骗等各种攻击。)
1、最常见的最经典的XSS bug检测语句必然是

2、利用IMG图片标记属性跨站

3、突破程序员的过滤限制

利用javascript换行与空格突破过滤
<img src = j ava script:al er t(/XSS/)>///空格使用Tab键产生
<img src = j
ava script :a ler t(/xss/)>
利用注释<img src = “#”/**/onerror = alert(/XSS/)>

。。。。。

安全渗透测试要求
1、XSS跨站脚本漏洞
系统程序没有对用户提交的变量中的代码进行过滤或转换,在用户输入页面可插入 JavaScript、 Active等恶意脚本。
2、SQL注入漏洞
系统的应用服务器端对SQL语句中使用的特殊字符“;”、“--”和“and”、“or”等未做过滤,并且允许其向数据库系统提交。
3、明文传输漏洞
对系统用户口令等机密信息的保护不足,攻击者可以利用攻击工具,从网络上窃取合法用户的口令数据,从而登录系统执行非法操作。
4、越权访问漏洞
目前存在着两种越权操作类型:横向越权操作和纵向越权操作。前者指的是攻击者尝试访问与他拥有相同权限的用户的资源;而后者指的是一个低级别攻击者尝试访问高级别用户的资源。
5、明文存储
对系统用户口令等机密信息的存储保护不足,导致攻击者可以获取系统的访问权限。
6、敏感信息泄露漏洞
系统暴露系统内部信息,如网站绝对路径、网页源代码、SQL语句、中间件版本和程序异常等信息。
7、后台泄露漏洞
后台地址过于简单地址泄露或者默认后台,为攻击者攻击系统提供便利。攻击者可以通过弱口令或默认用户密码等方式进入后台,对系统造成危害。
8、会话重放攻击
不断恶意或欺诈性地重复一个有效的数据包,重放攻击。攻击者可以拦截并重复发该数据到服务端,服务器端未对用户提交的数据包重放进行有效限制。如:可以抓取HTTP包固定账号破解密码、固定密码破解账号和重放提交投票数据包。
9、默认口令/弱口令
应用系统存在默认口令/弱口令。
10、中间件漏洞
使用不安全的http方法和IIS文件枚举漏洞
11、设计缺陷/逻辑错误
程序都是通过逻辑实现各种丰富多彩的功能的,要实现这些功能,必须掌握大量的技巧并进行周密的安排。但是,有很多情况这些功能逻辑存在缺陷,比如程序员的安全意识,比如考虑问题不周全等。即使是最简单的web应用程序,每个阶段都会执行大量的逻辑操作。如:可以重复建立用户名相同的用户;不同浏览器中未验证会话有效性。
12、不安全的cookie
cookies中包含有用户名或者密码等敏感信息,攻击者截取到cookies后可为攻击提供便利,若获取到用户密码可直接登录到系统中。
13、SSRF漏洞
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。
14、SSL3.0漏洞
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL常会爆出一些漏洞,如:心脏滴血漏洞等。
15、CSRF(跨站请求伪造)
跨站请求伪造(Cross-Site Request Forgery,CSRF)是一种使已登录用户在不知情的情况下执行某种动作的攻击。因为攻击者看不到伪造请求的响应结果,所以CSRF攻击主要用来执行动作,而非窃取用户数据。当受害者是一个普通用户时,CSRF可以实现在其不知情的情况下转移用户资金、发送邮件等操作;但是如果受害者是一个具有管理员权限的用户时CSRF则可能威胁到整个Web系统的安全。
16、命令执行漏洞
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system、exec、shell_exec等,当用户可以控制命令执行函数中的参数时,将可以注入恶意系统命令到正常命令中,造成命令执行攻击;另一种是由于漏洞而造成的命令执行(如:struts2、weblogic命令执行)
17、上传漏洞
系统对上传的文件类型没有进行验证,在应用系统的运营过程中,不可避免地要对网站的某些页面或者内容进行更新,这时便需要使用到网站的文件上传的功能。如果不对被上传的文件进行限制或者限制被绕过,该功能便有可能会被利用于上传可执行文件、脚本到服务器上,进而进一步导致服务器沦陷。
18、任意文件包含
任意文件包含,系统对传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入,导致恶意攻击者可以利用该缺陷读取服务器上指定文件
19、任意文件下载
任意文件下载,系统提供文件下载功能,但未对下载文件名进行限制,可下载任意文件。
20、目录遍历
目录遍历漏洞会将站点的目录暴露在攻击者眼前,攻击者可以从这些目录得知当前站点的信息,如开发语言、站点结构和数据库文件等信息。
21、溢出攻击漏洞
系统的客户端和服务器端对输入数据的字符长度未做检查,提交超长数据后,服务器端会出现异常错误,可能导致缓冲区溢出或拒绝服务攻击等安全问题。
22、XML实体注入
XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
23、检测存在风险的无关服务和端口
检测存在风险的无关服务和端口,为攻击者攻击提供便利
24、登录功能验证码漏洞
不断恶意或欺诈性地重复一个有效的数据包,重放攻击攻击者可以拦截并重复发该数据到服务端,服务器端未对用户提交的数据包重放进行有效限制,造成会话重放攻击。如:
固定账号破解密码、固定密码破解账号。验证码机制可以有效的解决会话重放攻击,但是验证码机制存在漏洞,会话重放攻击漏洞就仍然存在。

Nginx配置解决部分渗透测试问题
HOST头攻击

CSRF跨站请求伪造

修改NG配置文件,server中增加
valid_referers none blocked server_names;
if ($invalid_referer) {
return 403;
}

敏感信息泄漏

修改NG配置文件,http中增加
server_tokens off;

不安全的HTTP方法

修改NG配置文件,server中增加
if (request_method !~ ^(GET|HEAD|POST)request​m​​ethod! ​(​​GET∣HEAD∣POST) ) {
return 403;
}

参考配置

worker_processes  20;
events {
    worker_connections  1024;
}
http {
    #解决因nginx缓存区空间不足导致的JS加载异常问题(by sunwenyan)
    proxy_buffer_size 128k;
    proxy_buffers 32 128k;
    proxy_busy_buffers_size 128k;
     
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server_tokens off;
    keepalive_timeout  65;
    upstream webserver.ygsoft.com {
       server  10.51.90.13:7001;
       #server 192.168.2.4:8081;
       #server 192.168.2.5:8082;
       ip_hash;
    }
    #HTTP server
    server {
    listen 80;
    server_name localhost;
    rewrite ^(.*) https://$host$1 permanent;
        location / {
    return 302 https://$host$request_uri;
}
    }
    # HTTPS server
     #
    server {
        listen       443 ssl;
        listen       9020;
        server_name  localhost;
        ssl_certificate      /home/nginx/ygcert/ygdemo.crt;
        ssl_certificate_key  /home/nginx/ygcert/ygdemo.key;
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl on;
        error_page 497  https://$host$uri?$args;
        error_page  404    /gris_404.html;
        error_page  404 500 502 503 504  /gris_500.html;
        location = /gris_404.html {
            root   http://webserver.ygsoft.com/grm/error/gris_404.html;
        }           
        location = /gris_500.html {
            root   http://webserver.ygsoft.com/grm/error/gris_500.html;
        }     
        underscores_in_headers on;        
        add_header                  Set-Cookie "HttpOnly";                                                       #Cookie添加HttpOnly
        add_header                  Set-Cookie "Secure";                                                         #Cookie添加Secure
        add_header                  Cache-Control: no-store;                                                     #防止缓存
        add_header                  Pragma: no-cache;                                                            #防止缓存
        add_header                  X-Frame-Options "SAMEORIGIN";                                                #只允许本网站的frame嵌套
        add_header                  X-XSS-Protection '1;mode=block';                                             #开启XSS过滤器
        add_header                  Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";    #HTTP 严格传输安全 (HSTS) 是保护安全 (HTTPS) Web 站点不被降级到不安全 HTTP 的机制
        #add_header                  X-Content-Type-Options: nosniff;                                            #可能防止在用户浏览器中执行不受信任的内容,可能会影响页面正常访问
        add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://10.51.90.224; img-src 'self' https://10.51.90.224; style-src 'self' 'unsafe-inline' https://10.51.90.224; font-src 'self' https://10.51.90.224; frame-src https://10.51.90.224; object-src 'none'";                #配置Content-Security-Policy
        #防止XFF攻击/伪造IP
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #修复不安全http方式,只允许GET和POST方式
        if ($request_method !~* GET|POST) {
            return 403;
        }
        #修复CSRF Referer来源,但不添加CSRF ANTI TOKEN.(设置上面webserver.ygsoft.com的server IP地址)
        valid_referers none blocked server_names 10.51.90.224;
        if ($invalid_referer) {
        return 403;
        }
        #修复HOST头攻击,需要设置对应的IP地址(设置上面webserver.ygsoft.com的server IP地址)
        if ($http_Host !~* ^10.51.90.224$) {
        return 403;
        }
       location ~ /FMISWeb/services/ {
         proxy_set_header Host $host:9020;
        proxy_set_header Accept-Encoding "";          
         proxy_pass http://webserver.ygsoft.com;
         subs_filter_types text/xml;           
         subs_filter http://$host https://$host;
       }   
       location ~ /YGFMISWeb/services/ {
         proxy_set_header Host $host:9020;
         proxy_set_header Accept-Encoding "";          
         proxy_pass http://webserver.ygsoft.com;
         subs_filter_types text/xml;           
         subs_filter http://$host https://$host;        
       }   
       location ^~ /grm {
        #防止XFF攻击/伪造IP
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Accept-Encoding "";          
         proxy_pass http://webserver.ygsoft.com;
       }   
       location ~ \.(gif|jpg|jpeg|png|bmp|css|js|jsx|htc|vbs|txt|xml|swf|wav|html|htm|flv|ico|json|map|shtml|woff)$ {
      expires 1h;
      proxy_cache_key $host$uri$is_args$args;
      proxy_cache_valid  200 5h;
      proxy_cache_valid  304 5h;
      proxy_cache_valid  301 302 1h;
      proxy_cache_valid  any 1m;
      add_header X-Cache $upstream_cache_status;
      proxy_pass http://webserver.ygsoft.com;
      proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
    }
      location ~ /(barcodeServlet|ScriptServlet|contentmanage.viewFileServlet|getBillMainInfoServlet|getBillSubTableInfoServlet|getEcpFlowHistoryServlet|getBillAttachmentServlet|getEcpBillOptStateServlet|EfNavigateServlet|PageConfigServlet|MetaModelManagerServlet|IpGetterServlet|PortalCheckServlet|RemoteServiceServlet)(/*) {
      expires 1h;
      proxy_cache_key $host$uri$is_args$args;
      proxy_cache_methods GET POST;
      proxy_cache_valid  200 5h;
      proxy_cache_valid  304 5h;
      proxy_cache_valid  301 302 1h;
      proxy_cache_valid  any 1m;
      add_header X-Cache $upstream_cache_status;
      proxy_pass http://webserver.ygsoft.com;
      proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
    }
       location / {
         proxy_pass http://webserver.ygsoft.com;
       }
    }
}

posted on 2020-11-10 22:34  匍匐的仰望者  阅读(270)  评论(1编辑  收藏  举报

导航