美文网首页
0813.1282天:SQL注入,一般人不告诉你的秘诀

0813.1282天:SQL注入,一般人不告诉你的秘诀

作者: 我的职业生涯 | 来源:发表于2022-08-13 09:49 被阅读0次

    #每日三件事,第1282天#

    前面有很多文章都说了SQL注入的方法,最重要的就是找到闭合方式,加载payload。

    1. 怎么找闭合方式

    闭合方式其实就是为了将原本的SQL查询语句填写完整,并且能够附加新的命令。

    假设程序原来的查询语句如此:

    select * from user where id =('$id') limit 0,1 
    

    我们可以传递的参数就是id,那么闭合方式就是:

       1') payload --+
    

    单纯通过页面是否有错误提示信息来确定闭合方式是否正确,这个不太可靠。最好时在payload的地方加入可执行的命令,判断其在数据库中是否执行。

    以sqli-lab Less-7为例说明,当进行如下输入时:

       http://127.0.0.1:55005/Less-7/?id=1')) --+
    

    此时提醒提示正常。

    把单引号换成双引号时:

       http://127.0.0.1:55005/Less-7/?id=1“)) --+
    

    系统提示和上面的一致,都提示为:


    提示信息

    现在问题来了:到底哪一种闭合方式是正确的呢?

    只能加载payload来判断了。用“ and 1=1 ” 和“ and 1=2 ” 来测试。单引号的时候分别提示“You are in……”和语法错误;双引号的时候全部提示”You are in……“。 你怎么判断?

    1. 判定正确的闭合方式

    闭合方式正确的时候,paylaod就一定是在数据库中执行过了。关键是怎么简单快速的判断出来。使用sleep函数就可以了。

    将payload的部分可以使用sleep函数,如果数据库执行了payload,就可以看到延时;如果没执行,则没有延时。

    延时

    当然你可以用database、version函数,但结果判断没有sleep方便快捷。

    相关文章

      网友评论

          本文标题:0813.1282天:SQL注入,一般人不告诉你的秘诀

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