如何在PowerShell中创建可接收额外参数的sqlmap执行别名
你之前的写法有两个核心问题:
Set-Alias只能映射单个可执行程序路径,不能携带启动参数,也不支持自动传递后续输入的参数- 自定义函数没有接收和传递参数的逻辑,也存在拼写错误、变量引用错误的问题
方案1(推荐,无需切换目录)
直接用自动变量@args接收所有传入参数,原封不动传递给sqlmap脚本,不需要切换工作目录,写法最简洁:
function sqlmap { python D:\tools\sqlmap-master\sqlmap.py @args }
如果你的python没有加入系统环境变量,把python替换为python.exe的完整绝对路径即可,比如C:\Python310\python.exe。
方案2(需要在sqlmap目录运行的场景)
如果sqlmap有依赖当前工作目录的逻辑,必须切换到对应目录运行,可以用修正后的函数:
function sqlmap { $current_dir = (Get-Location).Path Set-Location 'D:\tools\sqlmap-master\' python sqlmap.py @args # 无论sqlmap执行是否成功,都切回原工作目录 Set-Location $current_dir }
永久生效配置
上面的函数重启PowerShell后会失效,要永久保留可以写入PowerShell用户配置:
- 运行命令创建配置文件(如果已存在会直接打开):
if (-not (Test-Path $PROFILE)) { New-Item -Path $PROFILE -ItemType File -Force } notepad $PROFILE
- 把你选择的函数代码复制到打开的记事本里,保存后关闭,重启PowerShell即可生效。
配置完成后直接输入sqlmap -u https://example.com --dbs这类命令即可正常运行,所有参数都会自动传递给sqlmap脚本。
内容的提问来源于stack exchange,提问作者kalalua
相关产品推荐
相关产品推荐

