• sqlmap --eval 用法


    今天查资料发现 sqlmap 有一个 --eval 的参数

    --eval=EVALCODE     Evaluate provided Python code before the request (e.g.
    

      

    对应执行sqlmap 中 sqlmap-masterlibcorecommon.py 中的 evaluateCode 函数

    def evaluateCode(code, variables=None):
        """
        Executes given python code given in a string form
        """
    
        try:
            exec(code, variables)
        except KeyboardInterrupt:
            raise
        except Exception, ex:
            errMsg = "an error occurred while evaluating provided code ('%s') " % getSafeExString(ex)
            raise SqlmapGenericException(errMsg)
    

      

    我们来看一下 sqlmap 带上 --eval 的执行过程

    debug 参数

    在sqlmap-masterlib equestconnect.py 中设置如下断点

     点debug

    sqlmap 首先会把各个参数都给解析出来,cookie  ua 等等

    然后接着sqlmap 会进行 evaluateCode(conf.evalCode, variables)  调用 sqlmap-masterlibcorecommon.py evaluateCode 函数,运行到 exec(code, variables)

    这中间sqlmap 会进行 pay.load 构造 一系列动作

     流程大致是  解析输入命令-> 解析url,header -> exec(code, variables) <-> payload 构造

    用法:

    --eval "import base64;id=base64.b64encode(id)"    // 对id参数值进行base64编码, id 参数必须存在,否则出错

    --eval "id=id.replace(' ','/*****/')"    // 将id参数值中的空格转换为 /*****/

    --eval="_locals['auxHeaders']['Host'] = 'xxx.com'"    // 如果host字段存在则将其改为 xxx.com  

    --eval="_locals['auxHeaders']['xxx'] = 'fdsafdsf'"    // 添加xxx头为fdsafdsf

  • 相关阅读:
    java8 Date/Time API 新的日期处理工具
    java8 Lambda 表达式和函数式接口快速理解
    java8 新特性精心整理(全)
    Git 从入门到熟练|不敢说精通
    C# Color 列表
    自动控制原理6
    forfiles命令详解
    详解SQLEXPR32_x86_CHS.exe、SQLEXPR_x86_CHS.exe、SQLEXPR_x64_CHS.exe之间的区别
    power disiagner pdb
    vs 中大括号之间垂直虚线显示
  • 原文地址:https://www.cnblogs.com/depycode/p/9342369.html
Copyright © 2020-2023  润新知