sqlmap --eval 用法

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

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

  

对应执行sqlmap 中 \sqlmap-master\lib\core\common.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-master\lib\request\connect.py 中设置如下断点

 点debug

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

 

然后接着sqlmap 会进行 evaluateCode(conf.evalCode, variables)  调用 \sqlmap-master\lib\core\common.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

 

转载于:https://www.cnblogs.com/depycode/p/9342369.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用`--sql-shell`选项可以让你在目标数据库上执行任意的SQL语句。以下是使用`--sql-shell`选项的基本步骤: 1. 首先,使用SQLMap进行探测并确认数据库注入漏洞是否存在。可以使用以下命令进行探测: ``` sqlmap -u <target-URL> --dbs ``` 2. 确认存在注入漏洞之后,可以使用以下命令来获取数据库中的所有表: ``` sqlmap -u <target-URL> -D <database-name> --tables ``` 其中,`<database-name>`是你想要访问的数据库名称。 3. 根据需要选择你想要访问的表,并使用以下命令来获取表中的所有列: ``` sqlmap -u <target-URL> -D <database-name> -T <table-name> --columns ``` 其中,`<table-name>`是你想要访问的表名称。 4. 根据需要选择你想要访问的列,并使用以下命令来获取`--sql-shell`: ``` sqlmap -u <target-URL> -D <database-name> -T <table-name> -C <column-name> --sql-shell ``` 其中,`<column-name>`是你想要访问的列名称。 5. 输入`--sql-shell`后,你将进入SQL Shell命令行提示符,此时你可以输入任意的SQL命令,并按回车键执行。例如: ``` mysql> SELECT * FROM users WHERE username='admin'; ``` 这个命令将返回名为`users`的表中用户名为`admin`的行的所有数据。 请注意,这些命令只是SQLMap获取SQL Shell的基本用法。具体步骤取决于你想要访问的数据库和表。同时,需要强调的是,这种方法只适用于合法的授权情况下,任何未经授权的访问都是违法的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值