美文网首页
基本的sql注入

基本的sql注入

作者: FKTX | 来源:发表于2017-12-12 19:03 被阅读0次

    用户输入的数据--->通过服务器系统--->到达web应用,执行相关的逻辑--->最后到数据库执行程序命令--->输出到页面又或者回到web应用,再执行相关逻辑,最后决定是否输出到页面

    总之,有数据查询嫌疑的地方,就有可能存在注入!

    登录页面常见的注入:

    在密码处进行闭合,用or衔接,这样只要用户名在数据库中存在,就可以返回该用户的信息

    例如:
    ' or '1'='1
    完整版就是:
    select * from users where user='username' and password='' or '1'='1'

    举一反三:
    只要是能表示逻辑结果的都可以,比如,1<2,2!=3,2+5=7,3*5=15,a=a等加减乘除,字符串相等。(mysql中a=A是真)

    在用户名处进行闭合,用or衔接,这样只要密码在数据库中存在,就会返回该密码主人的信息

    URL栏的get请求注入:

    www.xxx.com/index.php?id=1

    类似这样的,如果存在注入点,那么后台代码很可能没有引号。正常情况下,sql注入的对象分成三类:第一,数字型注入;第二字符型注入;第三,搜索型注入。

    所以,可以变成:

    id=1 order by 20

    然后查看返回结果是否报错,同时利用二分法,可以知道目标的数据表中具体有有多少个字段。

    接着,可以再手动输入:

    id=1 union select 1,2,3,4,5,6,7 

    利用这种联合查询的方法,可以查出目标数据表中的字段数,甚至猜测出具体的字段名。

    select 1,2,3,4,5 的意思就是在原有数据表的基础上,做临时字段查询,并且值都是这个值。比如现有字段name,age,那么select 1,2表示的就是name的值都变成1,age的值都变成2 。同理,如果此刻是select 1,2,3那么就会报错。因此,若是不用order by,利用select 1,2,3,4这样的方法,也是可以推断出字段的数量,并且猜测字段名。

    相关文章

      网友评论

          本文标题:基本的sql注入

          本文链接:https://www.haomeiwen.com/subject/vrqybxtx.html