web基础漏洞-sql注入

1、介绍

sql注入,是用户提交的数据,服务端接收后未经过严格检查,将其直接拼接到sql语句中,交给sql应用执行,超出了开发者预期的sql语句结构,从而造成危害。

2、详解

(1)从数据来说,任何前端提交的数据,都有可能成为sql注入的参数。包括get、post、及其它请求方法,包括url、请求头部和请求体部位置,包括ajax和非ajax请求形式。甚至包括http与非http的请求。

(2)从sql应用来说,几乎所有sql应用都存在sql注入的风险。包括mysql、sql server、oracle等。

(3)从编程语言来说,java、php等都存在sql注入风险。但相对来说,php等解释型语言风险更高,因为编译型语言天然的分割了字符串和数值类型。

(4)从sql语句来说,任何类型都存在sql注入风险。包括select、delete、update、insert以及其它。但相对来说,select语句在业务上最常见,从测试来说也相对安全,最多需要考虑脱库风险,而其它语句可能对数据库造成更改。

(5)从防护角度来说,预编译是核心方法,能够完全避免sql注入

3、select类型的五种测试

(1)联合注入

(2)时间盲注

(3)布尔盲注

(4)异常注入

(5)堆栈注入

 

posted @ 2023-06-08 17:50  挖洞404  阅读(12)  评论(0编辑  收藏  举报