## 漏洞描述该攻击是一种常见的安全风险也是初学者最先接触的安全风险之一。它是一种破坏性极强的攻击方式一旦成功可以实现数据篡改、窃取、破坏甚至可以实现提权、控制整个系统。- 什么是破坏性注入破坏性注入是 攻击者通过应用程序的输入字段携带恶意代码令应用程序在执行时出现意外行为从而实现攻击目的。注入漏洞常常存在于 应用程序对用户提交的数据不验证、不清理、不过滤 的情况。漏洞发生的核心原因为应用程序将不可信的数据交给解释器。## 常见注入攻击- SQL注入攻击原理攻击者通过在输入字段中输入恶意SQL语句当对输入内容验证和过滤不足时恶意SQL语句将会执行导致数据窃取、丢失等。- 基础型SQL注入最简单和直接将SQL语句嵌入输入中拼接到查询逻辑中输入nameadmin OR 11passwordanySELECT * from users where nameadmin OR 11 AND passwordany非洲打法没有欧美打法强力没有亚洲打法复杂但是真的简单啊- UNION联合注入通过UNION联合查询语句将非法的查询结果与合法的查询结果合并一同返回从而获取敏感数据。输入 UNION SELECT * from users --SELECT * from projects where id UNION SELECT * from users --想要什么自己拿- 错误型SQL注入该注入为故意触发数据库的错误从返回信息中判断表名、列名、数据。输入 AND 1CONVERT(int, (SELECT version)) --SELECT * from projects where id AND 1CONVERT(int, (SELECT version)) --可能的输出Conversion failed when converting the nvarchar value Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 to data type int.从中便可以看到SQL版本信息。并没有什么威胁性如果攻防是文明6那错误型SQL注入大概就是开局搓的侦察兵吧- 盲注无法直接获取查询效果的时候便可以尝试盲注了。盲注主要是布尔盲注此外也存在通过时间延迟来逐步推测数据的盲注。布尔盲注输入 AND (SELECT 1 WHERE SUBSTRING((SELECT *database())1,1)t) --SELECT * FROM users WHERE username AND (SELECT 1 WHERE SUBSTRING((SELECT database()), 1, 1)t) --示例注入效果 SELECT database() 把数据库名取出随后SUBSTRING部分取出第一个字符随后判断一下这个是不是 t 。如果是 t 那么就会SELECT 1 WHERE 1。这样进行判断效率非常低所以往往是先判断目标字段的长度再使用BurpSuite进行Sniper攻击逐个字符暴力猜测。延迟盲注输入 AND IF(11, SLEEP(5), 0) --SELECT * FROM users WHERE username AND IF(11, SLEEP(5), 0) --延迟盲注可以在更极端的情况下进行它甚至不需要返回与布尔相关的反应只需要查看是否有延迟。WEB只是在呼吸 盲注数据GET数据GET数据GET数据GET数据GET- 堆叠查询注入堆叠查询注入其实堆叠的是语句而不是查询逻辑。核心是允许多条SQL语句同时执行。输入; DROP TABLE users; --SELECT * from users WHERE username; DROP TABLE users; --堆叠查询注入能够在原有的语句之外执行另外一个语句。但是有的插件就会避免两条语句堆叠执行所以适用范围比较有限。但是真的强绝活之所以惊艳是因为0人会用堆叠查询注入也一样有感觉吗- 存储过程注入利用存储过程的输入参数注入恶意SQL。与上面的注入不同存储过程注入不是利用MySQL语句而是SQLserver语句。输入; EXEC xp_cmdshell(dir); --EXEC LoginProcedure username, ; EXEC xp_cmdshell(dir); --EXEC原本的行为是将用户输入内容存入LoginProcedure的username。但是呢EXEC有一个特性是EXECsqlsqlsqlsql可以把括号内的内容当SQL动态语句执行。示例便是通过xp_cmdshell执行系统命令dir来获得信息也可以换成SQL语句执行。真的有人把业务逻辑放在数据库里吗- Cookie注入如题利用Cookie注入Cookie: session_id OR 11;在解析Cookie时就会进行注入。- 更多更深入的注入LDAP注入、XPath注入、OS命令注入、XML解析器注入、SMTP头部注入、表达式语言注入、ORM注入、OGNL注入这些输入需要一些SQL基础之外的知识我还不会改天再补出来吧。这些属于DLC内容。