当前位置:   article > 正文

注入漏洞一把嗦(原理+步骤+防御)_post注入的起因?

post注入的起因?

一.SQL注入

1.什么是SQL注入

SQL注入是比较常见的黑客攻击手段之一,同时也是最常见的漏洞之一,常年位居owasp(开放式Web应用程序安全项目) top 10 第一位。SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对Web服务器进行攻击的方法。通俗易懂的解释是:在post/get的web表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。

2.SQL注入的本质

用户输入的数据被当成SQL代码执行(你自己输入的代码)

注意:这与网站的后端编程语言无关,无论是PHP,HTML,JS等写的网站都无关联。它们都会与数据库连接,都会接受用户输入的数据,都有可能会去拼凑SQL代码。

3.SQL注入原理

sql注入的原理是将sql代码伪装到输入参数中,传递到服务器解析并执行的一种攻击手法。也就是说,在一些对server端发起的请求参数中植入一些sql代码,server端在执行sql操作时,会拼接对应参数,同时也将一些sql注入攻击的“sql”拼接起来,导致会执行一些预期之外的操作。

4.SQL注入的优,缺点

1.优点:不需要显示位,如果有显示位建议使用union 联合查询。
2.缺点:需要有SQL语句的报错信息,比如:要有网站回显提示等。

5.SQL注入的威胁

1.攻击者未经授权可以访问数据库中的数据,盗取用户的隐私以及个人信息,造成用户的信息泄漏。
2.可以对数据库的数据进行增加或者删除操作。
3.如果网站目录存在写入权限,可以写入网页木马。攻击者进而可以对网页进行篡改,进行更多违法操作。
4.可以借助数据库的存储过程进行提权操作,进而获取数据库信息,利用工具或者数据库语言对数据库进行增,删,改,查。

6.SQL注入的特点

变种多,攻击简单,危害性大。

7.SQL注入检测方法

  • 闭合:传入引号,让传入的引号和原本的引号配对,注释掉后面的引号;引号内的东西,是数据不是代码。
    例如:select*from news where id=1
    (1).可以在1后面加个单引号(单引号无反应可以尝试双引号)
    select * from news where id=1’/"
    如果单双都无反应,尝试第二种方法
    (2).在id=1后面添加and 1=1/1=2查看网页回显
    select * from news where id=1 and 1=1 网页正常
    select * from news where id=1 and 1=2 网页显示错误信息
    如果像上面1=1无反应,1=2有反应,证明存在SQL注入,进行下一步操作,如果方法二还是没用的话,尝试引号的闭合,例如:’ " ') ") 这四种都是常见的闭合方法。
    上面都走不通只有两种可能:
    <1你的闭合都被过滤掉了,SQL注入这条路被堵,就尝试更牛的方法来开路(我暂时还没有 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/863141
推荐阅读