工具利用


Sqlmap

sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入

kali使用:sqlmap -u “url” (–data=” xxx”) 参数

常用参数

  1. --dbs 目标服务器中有什么数据库,常用,直接用--dbs
  2. --tables 目标数据库有什么表,常用,直接用--tables
  3. --columns 目标表中有什么列,常用,直接用--colums
  4. -D DB 指定从某个数据库查询数据,常用。例: -D admindb
  5. -T TBL 指定从某个表查询数据,常用。例: -T admintable
  6. -C COL 指定从某个列查询数据,常用。例: -C username
  7. --dump 查询指定范围的全部数据。例: --dump -D admin -T admin -C username
  8. --where=DUMPWHERE 在dump表时使用where限制条件。
  9. --batch 批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。

sqlmap参数参考

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关键字。

tamper绕过参考

Dirb

dirb是一个基于字典的web目录扫描工具

kali使用:dirb “url” 字典 参数…

字典路径:/usr/share/wordlists/dirb

常用参数

  1. -a :指定您的定制USER_AGENT。

  2. -c :为HTTP请求设置cookie。

  3. -f:精细调整NOT_FOUND(404)检测。

  4. -H :将自定义标头添加到HTTP请求。

  5. -i:使用不区分大小写的搜索。

  6. -l:找到时打印“ Location”标题。

  7. -N :忽略此HTTP代码的响应。

  8. -o <输出文件>:将输出保存到磁盘。

  9. -p <代理[:端口]>:使用此代理。(默认端口为1080)

  10. -P <proxy_username:proxy_password>:代理身份验证。

  11. -r:不要递归搜索。

  12. -R:交互式递归。(询问每个目录)

  13. -S:静默模式。不要显示经过测试的单词。(用于哑终端)

  14. -t:不要在网址上强制使用结尾的“ /”。

  15. -u <用户名:密码>:HTTP身份验证。

  16. -v:也显示NOT_FOUND页。

  17. -w:不要在警告消息上停止。

  18. -X <扩展名> / -x <扩展名文件>:在每个单词后加上该扩展名。

  19. -z:添加毫秒延迟,以免导致过多的Flood。

AntSword

中国蚁剑是跨平台网站管理工具

使用步骤

  1. 查看是否有可以放入shell的地方
  2. 可以放置shell进行切入
  3. 登录蚁剑,连接的url为shell存放的地方
  4. 如果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 # 帮助

Msfvenom介绍及使用

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支持的输出格式列表

Msfconsole介绍及使用


  目录