SQLMAP 弹二 传入数据全局使用
此次需求,是传入集群名给sqlmap使用,让发包函数的QPS限制装饰器拿到集群名
0X01
一开始研究了一会儿的数据跳着传递,后来发现sqlmap本身的conf是一个全局实例,在开始的时候进行初始化,在之后的各个流程中都有引用。所以集群名或者其他数据可以通过参数的形式传入conf配置里,再在其他地方调用。
0X02 sqlmap 传入数据给conf
# sqlmap\lib\parse\cmdline.py target.add_argument("--cluster", dest="cluster", help="Target cluster(e.g. test)")
添加参数就到了conf里了?
sqlmap.py def main 148行 initOptions(cmdLineOptions) \lib\core\options def initOptions 2638行 _mergeOptions(inputOptions, overrideOptions) def _mergeOptions(inputOptions, overrideOptions): 2197行 for key, value in inputOptionsItems: 将参数挨个输入到conf里
ps: 如果sqlmap输入不想要的参数
lib\parse\cmdline 987行 SystemExit报错 try: (args, _) = parser.parse_known_args(argv) if hasattr(parser, "parse_known_args") else parser.parse_args(argv) except UnicodeEncodeError as ex: dataToStdout("\n[!] %s\n" % getUnicode(ex.object.encode("unicode-escape"))) raise SystemExit except SystemExit: if "-h" in argv and not advancedHelp: dataToStdout("\n[!] to see full list of options run with ‘-hh‘\n") raise
0X03 传给装饰器
\lib\request\connect 行 248 @staticmethod def getPage(**kwargs): kwargs["cluster"] = conf.cluster if conf.cluster else "" return Connect._getPage(**kwargs) @staticmethod @qps_config def _getPage(**kwargs): """ This method connects to the target URL or proxy and returns the target URL page content """
相关推荐
zyjj 2020-07-04
bluet00 2020-06-25
godfather 2020-06-13
旗木卡卡西 2020-06-02
徐悦TechBlog 2020-05-27
liuyang000 2020-03-05
xuanlvhaoshao 2020-02-21
ItBJLan 2020-02-20
tanrong 2020-02-15
gwn00 2020-02-01
一对儿程序猿 2020-01-18
xuanlvhaoshao 2020-01-02
gwn00 2020-01-09
tanrong 2019-12-22
tanrong 2019-12-16
一对儿程序猿 2019-11-10
YFCEMBEDD 2019-11-09