<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      最近手上負責一個的項目要進行等保評測。請的第三方公司采用IBM Security AppScan Standard對項目進行安全測試。測試報告高危漏洞主要包含sql注入、sql盲注、跨站點腳本編制如下圖

      AppScan破解版安裝

      首先下載

      http://pan.baidu.com/s/1slmcHzR 密碼: xtyf

      直接點擊AppScan_Std_9.0.3.5_Eval_Win.exe安裝

      安裝成功之后把LicenseProvider.dll拷貝到AppScan安裝目錄。覆蓋原來的LicenseProvider.dll

      比如我的目錄是C:\Program Files (x86)\IBM\AppScan Standard

      運行AppScan

      接下來構建一個簡單的掃描任務

      選擇常規掃描,然后一直“下一步“,配置項目URL

      登錄管理配置,輸入你要測試項目的用戶名與密碼能夠成功登錄就行。這里的掃描的項目最好是在測試環境進行

      成功登錄測試項目之后AppScan會記錄登錄

      然后一直點擊下一步直到完成

      環境定義根據自己的實際情況來設定

      定義好環境點擊掃描選擇繼續完全掃描

      至此就默默的等待就OK拉。等掃描完成之后點擊報告生成PDF就知道自己的項目存在多少漏洞。

       

      LZ針對掃描的高危漏洞主要修改策略:

      1、配置https

      2、過濾危險字符

      3、配置http-only

      4、請求方式更改為post

      對于危險字符過濾,可以參考以下過濾邏輯

      import java.util.ArrayList;
      import java.util.List;
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;


      import org.apache.commons.lang.StringUtils;


      /**
       * ClassName: XssShieldUtil 
       * @Description: 處理非法字符
       * @author JornTang
       * @date 2017年9月6日
       */
      public class XssShieldUtil {


          private static List<Pattern> patterns = null;
          private static List<Pattern> sqlPatterns = null;
          /**
           * @Description: 獲取正則表達式
           * @return   
           * @return List<Object[]>  
           * @throws
           * Pattern.CASE_INSENSITIVE 默認情況下,大小寫不敏感的匹配只適用于US-ASCII字符集。這個標志能讓表達式忽略大小寫進行匹配
           * Pattern.MULTILINE 在這種模式下,'^'和'$'分別匹配一行的開始和結束。此外,'^'仍然匹配字符串的開始,'$'也匹配字符串的結束默認情況下,這兩個表達式僅僅匹配字符串的開始和結束。
           * Pattern.DOTALL 在這種模式下,表達式'.'可以匹配任意字符,包括表示一行的結束符。默認情況下,表達式'.'不匹配行的結束符
           * @author JornTang
           * @date 2017年9月6日
           */
          private static List<Object[]> getXssPatternList() {
              List<Object[]> ret = new ArrayList<Object[]>();
              //xss腳本編制過濾
              ret.add(new Object[]{"<(no)?script[^>]*>.*?</(no)?script>", Pattern.CASE_INSENSITIVE});
              ret.add(new Object[]{"(eval\\(\\(.*?\\)\\)|eval\\(.*?\\)|eval|function|aegncy|script)+", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL});
              ret.add(new Object[]{"expression\\(\\(.*?\\)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL});
              ret.add(new Object[]{"(javascript:|vbscript:|view-source:|valueOf:.*?)+", Pattern.CASE_INSENSITIVE});
              ret.add(new Object[]{"(window\\.location|window\\.|\\.location|document\\.cookie|document\\.|alert\\(.*?\\)|window\\.open\\(|window\\[.*?\\])+", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL});
              ret.add(new Object[]{"<+\\s*\\w*\\s*(src|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror=|onerroupdate|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmousout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onabort|onactivate|onafterprint|onafterupdate|onbefore|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)+\\s*=+", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL});
              ret.add(new Object[]{"(src|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror=|onerroupdate|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmousout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onabort|onactivate|onafterprint|onafterupdate|onbefore|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)+\\s*=+", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL});
              return ret;
          }
          /**
           * @Description: 獲取sql注入正則表達式
           * @return   
           * @return List<Object[]>  
           * @throws
           * @author JornTang
           * @date 2017年9月20日
           */
          private static List<Object[]> getSqlPatternList() {
              List<Object[]> ret = new ArrayList<Object[]>();
              //sql注入特殊字符過濾
              //|chr|mid|char|use|net
              ret.add(new Object[]{"(and |exec |execute |insert |select |create |delete |update |table |master |truncate |declare|sitename|substr\\(|drop table| count\\(| from )+", Pattern.CASE_INSENSITIVE});
              ret.add(new Object[]{"(xp_cmdshell| like |grant |group_concat |column_name |information_schema.columns)+", Pattern.CASE_INSENSITIVE});
              ret.add(new Object[]{"(table_schema|union |union all |where |order by|truncate |declare |or )+", Pattern.CASE_INSENSITIVE});
              return ret;
          }
          public static void main(String[] args) {
              boolean value = false;
              value = XssShieldUtil.stripXss("eval()");
              System.out.println("type-1: '" + value + "'");
          }
          /**
           * @Description: 獲取sql注入patterns
           * @return   
           * @return List<Pattern>  
           * @throws
           * @author JornTang
           * @date 2017年9月20日
           */
          private static List<Pattern> getSqlPatterns(){
          if (sqlPatterns == null) {
                  List<Pattern> list = new ArrayList<Pattern>();
                  for(Object[] arr : getSqlPatternList()) {
                      String regex = (String)arr[0];
                      Integer flag = (Integer)arr[1];
                      list.add(Pattern.compile(regex, flag));
                  }
                  sqlPatterns = list;
              }
              return sqlPatterns;
          }
          private static List<Pattern> getPatterns() {


              if (patterns == null) {


                  List<Pattern> list = new ArrayList<Pattern>();


                  String regex = null;
                  Integer flag = null;
                  int arrLength = 0;


                  for(Object[] arr : getXssPatternList()) {
      //                arrLength = arr.length;
      //                for(int i = 0; i < arrLength; i++) {
      //                    
      //                }
                  regex = (String)arr[0];
                      flag = (Integer)arr[1];
                      list.add(Pattern.compile(regex, flag));
                  }


                  patterns = list;
              }


              return patterns;
          }
          /**
           * @Description: 檢測sql注入特殊字符
           * @param value
           * @return   
           * @return boolean  
           * @throws
           * @author JornTang
           * @date 2017年9月20日
           */
          public static boolean stripSql(String value){
          boolean flag= false;
          if(StringUtils.isNotBlank(value)) {


                   Matcher matcher = null;


                   for(Pattern pattern : getSqlPatterns()) {
                       matcher = pattern.matcher(value);
                       // 匹配
                       boolean ism= matcher.find();
                       if(ism) { 
                      flag= true;
                          break;
                       }
                   }
               }
          return flag;
          }
          public static boolean stripXss(String value) {
          boolean flag= false;
              if(StringUtils.isNotBlank(value)) {


                  Matcher matcher = null;


                  for(Pattern pattern : getPatterns()) {
                      matcher = pattern.matcher(value);
                      // 匹配
                      boolean ism= matcher.find();
                      if(ism) { 
                      flag= true;
                          break;
                          // 刪除相關字符串
                          //value = matcher.replaceAll("");
                      }
                  }


                  //value = value.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
              }


      //      if (LOG.isDebugEnabled())
      //          LOG.debug("strip value: " + value);


              return flag;
          }
      }

      一旦發現用戶輸入包含以上規則,直接返回響應。提示用戶存在危險輸入,禁止操作

      以上修改基本測試不會再出現高危漏洞

      posted on 2018-05-31 14:20  薛土豆  閱讀(441)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 日韩区二区三区中文字幕| 18禁成人免费无码网站| 少妇爽到呻吟的视频| 激情综合五月| 国产精品呻吟一区二区三区| 国产18禁黄网站禁片免费视频| 欧美极品色午夜在线视频 | 日本精品极品视频在线| 日韩中文字幕亚洲精品| 国内精品久久久久电影院| 青草青草久热精品视频在线播放| 国产成人综合久久亚洲av| 欧美老熟妇乱子伦牲交视频| 国产精品无码久久久久AV| 成人又黄又爽又色的视频| 精品女同一区二区三区在线 | 男女裸体影院高潮| 深夜免费av在线观看| 亚洲AV国产福利精品在现观看| 亚洲 一区二区 在线| 国内精品久久人妻无码不卡| 欧美成年黄网站色视频| 成人免费无码视频在线网站| 青草99在线免费观看| 99热精品国产三级在线观看| 蜜桃av亚洲第一区二区| 青川县| 亚洲欧美中文字幕日韩一区二区| 色视频在线观看免费视频| 少妇性bbb搡bbb爽爽爽欧美| 中文字幕日韩国产精品| 国产成人午夜福利院| 国产精品一区二区三区色| 亚洲精品国产自在现线最新| 免费中文熟妇在线影片| 正在播放国产剧情亂倫| 久久精品人人看人人爽| 亚洲国产精品高清久久久| 日本免费一区二区三区日本| 双牌县| 日韩一区在线中文字幕|