阅读须知
本文所述之信息,只作为网络安全人员对自己所负责的网站及服务器进行检测和维护等运维行为的参考。未经合法授权请勿使用本文中的工具、技术及资料,对任何计算机系统进行入侵活动。利用本文所提供的信息所造成的直接或间接后果,及其所引发的损失,均由使用者承担。本文所提供的工具及方法仅用于学习,禁止用于其他!
快捷工具箱使用场景
日常工具使用中,时常会遇到工具需要用到命令行参数,普遍做法是通过参数–h,–help查看冗长的英语说明,看完一大堆参数后现炒现卖,下一次再用还得再看一次。可是在面对不同的应用,一大堆的参数面前,怎样可以快速高效的找到自己需要的参数呢?接下来让我们一起看看TangGo的快捷工具箱的超强的图形化自定义工具吧。
使用示例
测试软件:sqlmap-1.8,该软件为开源软件可以自行下载。
使用工具:TangGo 快捷工具箱。
安装快捷工具箱
快捷工具箱:顾名思义,方便快捷管理和使用自定义的工具。
打开TangGo,点击左下角进入快捷工具箱 。
点击添加一个工具:
工具类型:
○ 自定义界面工具:常见的是自定义运行脚本文件,例如该文中的:sqlmap。
○ 文件快捷访问:一般是可以运行的程序,例如:TangGo.exe。
○ 文件夹快捷访问:一般是文件夹路径,例如:C:/windows/temp/。
○ 超链接:一般是网站的URL,例如:https://www.baidu.com/。
运行环境:根据选择的工具给出对应的环境。
可以选择内置的环境,也可以在浏览中选择自己本地存在的环境。
工具路径:找到工具所在的路径。
自定义剩余内容。
完成之后看到工具添加完成。
自定义界面工具-参数录入
本次教程主要介绍自定义界面工具,结合 sqlmap 的使用,使用到命令行参数如下:
1 -url #目标URL
2 -r #从文件中加载HTTP请求
3 --level * #指定检测的等级
4 --dbs #枚举出所有数据库名
5 --current-db #获取当前数据库名
6 --tables #枚举出数据库中的所有表名
7 --columns #枚举出指定表中的所有列
8 --batch #会自动选择默认项(Y)
9 --form #表单注入
10 --dump #获取内容
11 --method #强制使用提供的HTTP方法
12 -D #指定要枚举的数据库
13 -T #指定要枚举的数据表
通过点击右上角“参数录入”,选择“添加”分别录入上述参数,程序最终命令:工具路径+环境参数+启动参数+表单参数。
注意:部分参数可以勾选“必填”选项,请根据运行需求来选择是否需要勾选。
环境参数
该部分是解决一些语言启动时候遇到问题,需要参数解决,例如:
○ python在执行的时候,由于缓冲区的设置导致命令执行的结果不能实时返回,可以加上-u参数来解决。
○ java的环境参数通常会配置 -noverify,-Xmx2048M 等参数。
启动参数
是指某工具的固定输入参数, 使用的时候通常为固定参数。
单行输入框
录入参数“–url”,通过添加一个类型为“单行输入框”,该选项可以输入一个单行的参数:(注意运行参数为实际运行所添加的参数)
保存之后,主页面可以查看,输入对应的参数地址即可看到参数:
多选框
录入“–dbs、–current-db、–tables、–columns”,添加一个“多选框”,该选项可以允许选择多个参数。
保存之后,根据需要可以选择对应的参数,这里选择参数“–dbs”和“–current-db”:
单选框
录入参数“–method”以及方法“GET、POST、PUT”,选择“单选框”,该选项可以从多个选项中选择一个。
保存后回到页面查看,可以单选选择请求方式。
开关
录入参数“–dump”,添加一个“开关”,该选项作为一个选择状态,可以根须实际需要开启。
保存后回到页面查看,开启后会默认追加“–dump”,关闭后则不会追加:
路径选择器
录入参数“-r”,选择“路径选择器”,该参数可以指定选择“文件 / 文件夹”的路径。
保存后回到页面查看,选择一个文档,该功能可以避免路径出错:
选择器
录入参数“–level 1、–level 2、–level 4”,选择“选择器”,该选项可以选择对应的参数。
保存之后回到页面,选择对应的等级可以展示对应的参数:
多行输入框
自选参数,选择“多行输入框”,该选项可以保证一次输入多行数据:
保存后回到页面查看,输入多行数据会显示:
自定义参数页面
当添加一定多的功能后会遇到内容繁杂,并且不能针对目标进行细致的处理,接下来看看自定义界面工具中的自定义参数界面:
择右上角
可以新增页面,新建自定义参数界面,可以根据需要勾选自己的内容即可:
根据实际需求选择对应的自定义界面:
新功能使用
最新版本的自定义界面工具已经支持使用交互式的命令行, 在交互式命令行终端可以交互式执行命令,常用操作 :
○ 选中终端中的数据,点击鼠标右键即可复制选中的数据;
○ 在光标位置点击右键即可将剪贴板中的数据以命令形式粘贴执行;
○ 如需退出交互式命令行终端,可以按下ctrl+c或输入exit命令后按两次回车键。
示例程序代码如下:
# 非常简单的示例
2 import time
3 print("hello word!")
4 a = input("This is an input-->")
5 print(a)
其他情况:
对于部分应用需要修改对应的代码选项,例如在使用 sqlmap 的时候,默认的终端会给我们选择 Y:
原因如下,在 \sqlmap-1.8\lib\core\common.py 代码中:
def checkPipedInput():
2 """
3 Checks whether input to program has been provided via standard input (e.g. cat /tmp/req.txt | python sqlmap.py -r -)
4 # Reference: https://stackoverflow.com/a/33873570
"""
5 return hasattr(sys.stdin, "fileno") and not os.isatty(sys.stdin.fileno())
checkPipedInput() 函数的目的是检查 Python 是否通过管道 (pipe) 接收到了标准输入 (stdin) 的数据。通常在命令行中,可以通过管道将一个命令的输出作为另一个命令的输入。
函数内部实现:
总结来说,当这个函数返回 True 时,意味着标准输入是从其他命令通过管道传递过来的数据,而非来自键盘的直接输入。
修改措施:
def checkPipedInput():
2 """
3 Checks whether input to program has been provided via standard input (e.g. cat /tmp/req.txt | python sqlmap.py -r -)
4 # Reference: https://stackoverflow.com/a/33873570
"""
5 return False
把原有的:”return hasattr(sys.stdin, “fileno”) and not os.isatty(sys.stdin.fileno())”修改为”return False”。
再次运行程序,程序可以正确进行终端交互:
注意:工具使用内容请以最新版本为主。
推荐阅读
2、本站永久网址:https://www.xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容