LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

nginx lua防火墻防SQL注入配置

admin
2025年6月28日 22:17 本文熱度 242

一、防火墻配置

參考 nginx配置lua防火墻

二、準備演示環境

1. 前端演示頁面

<html>

<head>
    <title>登陸</title>
    <meta charset="utf-8">
</head>

<body>
    <div>
        用戶名:<input type="text" name="user" id="txtUser"><br>
        密碼:<input type="password" name="pwd" id="txtPassword"><br>
        <input type="button" onclick="login('login')" value="登陸"> <br>
        <div id="divMsg"></div>

        <script>
            function login(action) {
                var httpRequest = new XMLHttpRequest()
                httpRequest.onreadystatechange = function () {
                    if (httpRequest.readyState == 4) {
                        document.getElementById("divMsg").innerText = httpRequest.responseText
                    }
                }
                httpRequest.open('POST', `/api/${action}`, true)
                httpRequest.setRequestHeader(
                    'Content-type',
                    'application/x-www-form-urlencoded'
                )
                var user = document.getElementById("txtUser").value
                var pwd = document.getElementById("txtPassword").value
                var str = `username=${user}&password=${pwd}`
                httpRequest.send(str)
            }
        </script>
    </div>
</body>

</html>

2. 服務端演示代碼,模擬SQL注入

@Autowired
JdbcTemplate jdbcTemplate;
/**
 * 拼sql查詢
 *
 * @param user
 * @return
 */
@PostMapping("/login")
public String login(User user) {
    String sql = "select * from sys_user where user_name = '" + user.getUsername() + "' and pass_word = '" + user.getPassword() + "'";
    System.out.println("SQL:");
    System.out.println(sql);
    List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
    System.out.println(maps.size());
    if (maps.size() > 0) {
        return"login success";
    } else {
        return"login fail";
    }
}

3. nginx代理設置

location /api/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://192.168.1.18:8093/;
}

4. 配置攔截參數(lua防火墻通過檢測post表單中的關鍵字實現攔截)。

# 設置SQL注入的關鍵參數
echo "'\s+or\s+" >> /usr/local/nginx/conf/ngx_lua_waf/wafconf/post

# 重新加載,使配置生效
/usr/local/nginx/sbin/nginx -s reload


三、效果演示

1. 正常登陸

2. 注入成功,在配置post攔截參數以前的效果

3. 注入被攔截,在配置post攔截參數以后的效果

閱讀原文:原文鏈接


該文章在 2025/7/1 23:48:34 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
自拍自偷一区二区三区 | 亚洲欧美一二区日韩高清在线 | 只有国产99有精品视频 | 夜夜久久国产精品亚州AV | 亚洲精品国产精品乱码视色 | 亚洲欧美在线综合图区 |