Sqlmap
sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入
kali使用:sqlmap -u “url” (–data=” xxx”) 参数
常用参数
--dbs
目标服务器中有什么数据库,常用,直接用--dbs
--tables
目标数据库有什么表,常用,直接用--tables
--columns
目标表中有什么列,常用,直接用--colums
-D DB
指定从某个数据库查询数据,常用。例:-D admindb
-T TBL
指定从某个表查询数据,常用。例:-T admintable
-C COL
指定从某个列查询数据,常用。例:-C username
--dump
查询指定范围的全部数据。例:--dump -D admin -T admin -C username
--where=DUMPWHERE
在dump表时使用where限制条件。--batch
批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。
tamper是sqlmap提供的饶过脚本,使sqlmap更加强有力的渗透
tamper使用:–tamper “脚本名称”
脚本在kali下的路径:/usr/share/sqlmap/tamper/
tamper脚本分类说明
1、apostrophemask.py :将引号替换为UTF-8,用于过滤单引号。安全
2、base64encode.py :替换为base64编码。app
3、multiplespaces.py:围绕SQL关键字添加多个空格。dom
4、space2plus.py:用+号替换为空格。ide
5、nonrecursivereplacement.py:做为双重查询语句,用双重语句替代预约义的SQL关键字(适用于很是弱的自定义过滤器,例如将SELECT替换为空)。函数
6、space2randomblank.py:将空格替换为其余有效字符。post
7、unionalltounion.py:将UNION ALL SELECT替换为UNION SELECT。测试
8、securespher.py:追加特制的字符串。
9、space2hash.py:将空格替换为#号,并添加一个随机字符串和换行符。
10、space2mssqlblank.py(mssql):将空格替换为其余空符号。
11、spce2mssqlhash.py:将空格替换为#号,并添加一个换行符。
12、between.py:用NOT BETWEEN 0 AND 替换大于号(>),用BETWEN AND 替换等号(=)。
13、percentage.py:ASP容许在每一个字符前面添加一个%号1.
14、sp_password.py:从DBMS日志的自动模糊处理的有效载荷中追加sp_password。
15、charencode.py:对给定的Payload所有字符使用URL编码(不处理已经编码的字符)。
16、randomcase.py:随机大小写。
17、charunicodeencode.py:字符串unicode编码。
18、space2comment.py:将空格替换为/**/。
19、equaltolike.py:将等号替换为like。
20、greatest.py:绕过对”>”的过滤,用GREATEEST替换大于号。
以上测试经过的数据库类型和版本:
mysql4、mysql5.0和mysql5.5
orcale10g
postgresql8.3、postgresql 8.4和postgresql9.0
21、ifnull2ifisnull.py:绕过对IFNULL的过滤,替换相似IFNULL(A,B)为IF(ISNULL(A),B,A)。
测试经过的数据库类型和版本为MySQL 5.0和MySQL 5.5
22、modsecurityversioned.py:过滤空格,使用MySQL内联注释的方式进行注入。
测试经过的数据库类型和版本为MySQL5.0
23、space2mysalblank.py:将空格替换为其它空白符号(适用于MySQL)
测试经过的数据库类型和版本为MySQL5.1
24、modesecurityzeroversioned.py:使用MySQL内联注释的方式(/!00000/)
测试经过的数据库类型和版本为MySQL 5.0
25、space2mysqldash.py:将空格替换为–,并添加一个换行符。
26、bluecoat.py:在SQL语句以后用有效的随机空白符替换空格符,随后用LIKE替换等于号。
测试经过的数据库类型和版本为MySQL5.1和SGOS
27、versionedkeywords.py:注释绕过。
28、halfversionedmorekeywords.py:当数据库为MySQL时绕过防火墙,在每一个关键字以前添加MySQL版本注释。
测试经过的数据库类型和版本为MySQL 4.0.18和MySQL 5.0.22
29、space2morehash.py:将空格替换为#号,并添加一个随机字符串和换行符。
测试经过的数据库类型和版本为MySQL5.1.14
30、apostrophenullencode.py:用非法双字节unicode字符替换单引号。
31、appendnullbyte.py:在有效负荷的结束位置加载零字节字符编码。
32、chardoubleeencode.py:对给定的Payload所有字符使用双重URL编码(不处理已编码的字符)。
33、unmagicquotes.py:用一个多字节组合(%bf%27)和末尾通用注释也一块儿替换空格。
34、randomcomments.py:用/**/分割SQL关键字。
Dirb
dirb是一个基于字典的web目录扫描工具
kali使用:dirb “url” 字典 参数…
字典路径:/usr/share/wordlists/dirb
常用参数
-a
:指定您的定制USER_AGENT。 -c
:为HTTP请求设置cookie。 -f:精细调整NOT_FOUND(404)检测。
-H
:将自定义标头添加到HTTP请求。 -i:使用不区分大小写的搜索。
-l:找到时打印“ Location”标题。
-N
:忽略此HTTP代码的响应。 -o <输出文件>:将输出保存到磁盘。
-p <代理[:端口]>:使用此代理。(默认端口为1080)
-P <proxy_username:proxy_password>:代理身份验证。
-r:不要递归搜索。
-R:交互式递归。(询问每个目录)
-S:静默模式。不要显示经过测试的单词。(用于哑终端)
-t:不要在网址上强制使用结尾的“ /”。
-u <用户名:密码>:HTTP身份验证。
-v:也显示NOT_FOUND页。
-w:不要在警告消息上停止。
-X <扩展名> / -x <扩展名文件>:在每个单词后加上该扩展名。
-z:添加毫秒延迟,以免导致过多的Flood。
AntSword
中国蚁剑是跨平台网站管理工具
使用步骤
- 查看是否有可以放入shell的地方
- 可以放置shell进行切入
- 登录蚁剑,连接的url为shell存放的地方
- 如果shell为PHP类型,且用post之类的传值,则密码为post的value值
Msfvenom
Msfvenom是生成后门的工具
常用参数
Options:
-l, –list# 列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, platforms, archs, encrypt, formats等等
-p, –payload# 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取
–list-options # 列出–payload的标准,高级和规避选项
-f, –format# 指定 Payload 的输出格式(使用 –list formats 列出)
-e, –encoder# 指定使用的 Encoder (使用 –list encoders 列出)
–sec-name# 生成大型Windows二进制文件时使用的新名称。默认值:随机4个字符的字符串
–smallest # 使用所有可用的编码器生成最小的payload
–encrypt# 应用于shellcode的加密或编码类型 (使用–list encrypt 列出)
–encrypt-key# 用于加密的密钥
–encrypt-iv# 加密的初始化向量
-a, –arch# 指定目标系统架构(使用 –list archs 列出)
–platform# 指定目标系统平台 (使用 –list platforms 列出)
-o, –out# 保存payload文件
-b, –bad-chars# 设置需要在 Payload 中避免出现的字符,如: ‘\x00\xff’
-n, –nopsled# 指定 nop 在 payload 中的数量
-s, –space# 设置未经编码的 Payload 的最大长度
–encoder-space# 编码后的 Payload 的最大长度
-i, –iterations# 设置 Payload 的编码次数
-c, –add-code# 指定包含一个额外的win32 shellcode文件
-x, –template# 指定一个特定的可执行文件作为模板
-k, –keep # 保护模板程序的功能,注入的payload作为一个新的进程运行
-v, –var-name# 指定一个变量名(当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码,追加到一个 python 变量中,这个参数即为指定 python 变量的变量名)
-t, –timeout# 设置从STDIN读取payload的等待时间(默认为30,0为禁用)
-h, –help # 帮助
Msfconle
常用参数
-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度
-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64
–platform < platform> 指定payload的目标平台
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 ‘\x0f’、’\x00’;
-i, –iterations < count> 指定payload的编码次数
-c, –add-code < path> 指定一个附加的win32 shellcode文件
-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out < path> 指定创建好的payload的存放位置
-v, –var-name < name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表