信息安全之SQL注入

(此为课堂笔记整理,方便日后学习)

一. SQL注入攻击原理

原因分析:

      由于程序中对用户输入检查不严格,导致用户提交的非法数据被当作SQL语句的一部分来执行(即改变了系统后台原有的SQL语句结构),从而使攻击者获得某些他想得知的数据。

目标:

      借Web应用的”刀“来攻击服务器数据库或操作系统


二. SQL注入攻击类型

   A. 字符串内联注入
   B. 数字值内联注入
   C. 终止式注入:利用注释符

   D. 搜索型注入:利用搜索关键字


A. 字符串内联注入:

      程序员考虑的场景:
                           Username: admin
                           Password: p@$$w0rd

                           SELECT COUNT(*) FROM Users WHERE username='admin' and password= 'p@$$w0rd'

                           

      程序员未考虑的场景:

                           Username: admin' and 1=1 OR ‘1’=‘1

                           Password: 1

                           SELECT COUNT(*)FROM Users WHERE username=‘admin' and 1=1 OR 1’=‘1 and password='1'

                           

B. 数字值内联注入:

        常用的判断SQL注入攻击方法:在数字型的参数后跟上假条件或真条件
        http://.../list.php?uid=45 and 1=1   页面返回正确

        http://.../list.php?uid=45 and 1=X   页面返回错误

C. 终止时注入:

        终止式SQL语句注入是指攻击者在注入SQL代码时,通过注释剩下的查询来成功结束该语句。

       常用的向数据库添加注释的语法如下:
           1、--:用于单行注释,该符号后的SQL语句将不再被执行

           2、/*    */用于多行注释,处于该符号中间的SQL语句不会被执行


三. SQL注入攻击常见的方法:

         SQL注入工具:(SQLMAP、BurpSuite等)
         手工注入:
                a. 联合查询

                b. SQL盲注


四. SQL注入流程:

        (1)找到带参的URL或表单
        (2)判断是否存在注入
        (3)通过SQL注入语句实施注入攻击:
                       猜解表名;猜解列名;猜解内容

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入是一种常见的网络安全漏洞,攻击者通过在用户输入的数据插入恶意的SQL语句来获取或修改数据库的数据。下面是关于SQL注入的详细解释。 SQL注入是一种利用Web应用程序对数据库进行恶意操作的攻击方式。攻击者利用应用程序没有对用户输入的数据进行足够验证和过滤的漏洞,将恶意的SQL语句插入到数据库查询,并成功执行了这些语句。 SQL注入可以导致严重的后果,包括数据泄露、数据篡改、系统崩溃等。为了防止SQL注入,开发人员应该在编写代码时采取一些安全措施: 1. 使用参数化查询或预编译语句:这是最有效的防止SQL注入的方法。通过将输入值作为参数传递给查询语句,数据库会将输入值视为数据,而不是代码。 2. 输入验证和过滤:对用户输入的数据进行验证和过滤,只接受合法的输入字符。可以使用正则表达式或其他验证方法来检查输入数据的格式和内容。 3. 限制数据库用户权限:将数据库用户的权限限制到最低限度,只赋予其必要的操作权限。这样即使注入攻击成功,攻击者也无法执行敏感操作。 4. 避免动态构建SQL查询:尽量使用参数化查询而不是动态构建SQL查询语句。因为动态构建SQL语句容易受到注入攻击,而参数化查询可以避免这种问题。 5. 定期更新和修补软件:及时更新和修补数据库和应用程序,以确保安全漏洞被修复。 总之,SQL注入是一种常见而严重的网络安全漏洞,开发人员应该了解并采取必要的防范措施来防止这种攻击。同时,用户也需要保持警惕,避免向不受信任的应用程序提供个人敏感信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值