• SQL服务器在执行这条语句时会先进行运算然后执行


    1、打开地址,我们可以看到是一个正常的页面。

    2.、然后在地址后面加上-1,变成:http://site/news.asp?id=123-1,若返回的页面和前面不同,是另一个正常的页面,则表示存在注入漏洞,而且是数字型的注入漏洞

    3、若在地址后面加上 -0,变成 http://site/news.asp?id=123-0,返回的页面和之前的页面相同,然后加上-1,返回错误页面,则也表示存在注入漏洞,而且是数字型的。

    4、若在地址后面加上’%2B’,变为:http://site/news.asp?id=123′%2B’,返回的页面和之前的相同;再加上’2%2B’sb,地址变为:http://site/news.asp?id=123′%2Bsb,返回另一个正常的页面,或者说未发现该条记录,或者错误,则表示存在注入漏洞,而且是文本型的。

    原因分析:

    如果SQL语句是这样执行的(数字):select * from news where id=2881064151

    当在后面加上 -1 后,语句变为select * from news where id=123-1

    但是SQL服务器在执行这条语句时会先进行运算123-1即为122,然后执行的是:select * from news where id=122

    这样选出来的就是另外一条页面记录了。如果该页面存在,就是另一个页面;否则将会显示记录不存在,或者出错。这也同时表示程序未对输入的数据进行过滤,存在数值型的注入漏洞。

    如果SQL语句是这样执行的(字符):select * from news where id=’123′

    在后面加上 ‘%2B’ 之后,语句变为:select * from news where id=’123′+” (%2B 是 + 的URL编码)

    这时SQL服务器实际执行的是:select * from news where id=’123′,会返回同样的页面。

    在后面加上 ‘%2B’sb之后,语句变为:select * from news where id=’123′+’sb’ (同样道理,SQL会先执行’123′+’sb’)

    则SQL实际执行的是:select * from news where id=’123sb’,返回页面不存在,或者显错,就表示有文本型的注入漏洞。

  • 相关阅读:
    数据仓库系列之ETL过程和ETL工具
    大数据从入门到精通
    Mysql误删表中数据与误删表的恢复方法(转)
    Vscode 小白使用介绍
    Window 通过cmd查看端口占用,杀死进程方法
    Python基础教程,Python入门教程(非常详细)
    tuxedo安装与配置入门
    Win10系统Ping端口及利用telnet命令Ping 端口
    Tuxedo 介绍
    hibernate框架的简单入门
  • 原文地址:https://www.cnblogs.com/cbryge/p/6223180.html
Copyright © 2020-2023  润新知