在Windows中Mysql默认以SYSTEM身份运行,但PostgreSQL无论是在Windows还是在Linux中都以低权限的用户postgres运行。SQL Server 2000默认以SYSTEM身份运行,但SQL Server 2005到2008大多数时间以NETWORK SERVICE身份运行,少数时候以LOCAL SERVICE身份运行。
使用参数“–priv-esc”可以执行Metasploit的getsystem命令以尝试提升权限。
十七、Windows注册表操作
满足以下条件就可以对Windows注册表进行操作:
目标数据库管理系统是运行在Windows上的
目标数据库管理系统是MySQL、PostgreSQL或微软SQL Server
支持堆查询
目标数据库管理系统当前用户有足够的权限
1.读Windows注册表键值
参数:–reg-read
2.写Windows注册表键值
参数:–reg-add
3.删除Windows注册表键值
参数:–reg-del
4.辅助
参数:–reg-key、–reg-value、–reg-data和–reg-type
适当使用上列参数就可以在命令中添加或修改一个Windows注册表键值而不用在Sqlmap运行时以问答方式提供数据。
–reg-key:指定Windows注册表键值的路径
–reg-value:指定Windows注册表键值的键
–reg-data:指定Windows注册表键值的值
–reg-type:指定Windows注册表键值的值的数据类型
下面是一个例子:
python sqlmap.py -u ?id=1 --reg-add --reg-key="HKEY_LOCAL_MACHINESOFTWAREsqlmap" --reg-value=Test --reg-type=REG_SZ --reg-data=1
十八、通用选项
1.从SQLite文件中载入Sqlmap会话
参数:-s
Sqlmap会自动地为每一个目标创建长久保存的会话SQLite文件,该文件统一存储在特定目录(如:~/.sqlmap/output/)中,其中保存着恢复会话所需的所有数据。若用户想要明确地指定SQLite文件(例如想要将多个目标的数据存储到同一个SQLite文件中),可使用此参数。
2.将HTTP(S)流量记录到日志文件中
参数:-t
该参数后跟一个文件路径,用于将HTTP(S)请求和响应以文本格式记录到文件中作为日志。这样的日志在调试时是很有用的。
3.非交互模式
参数:–batch
使用该参数可以让Sqlmap以非交互模式运行,所有要求的输入都会取默认值。
4.设置字符编码
参数:–charset
为正确解码数据,Sqlmap会使用Web服务器提供的信息(如HTTP头部中字符编码的设置),或是使用第三方库chardet来启发式地确定字符编码。
可以使用参数“–charset”来指定字符编码,如“–charset=GBK”。
5.从目标URL开始爬取目标站点
参数:–crawl