目录
15.mysql数据库里面用于写文件的函数,以及读取文件的函数
1.如何查看已经开放的端口
netstat -ntlp
2.如何查看进程
ps -aux
3.历史命令文件的位置
/root/.bash_history
注意:该文件在用户家目录下面
1.查看已开放的端口
netstat -ano
2.查看进程
tasklist
1.sql注入的原理
一个与数据库交互的动态网站,当传参可控的时候,可以通过闭合插入构造的sql语句,达到操作数据库的效果
2.报错函数有哪些
updataxml():第二个参数的XPATH格式语法错误导致报错
extractvalue():第二个参数的XPATH格式语法错误导致报错
floor():在排序的时候,由于虚拟表的主键重复导致报错
exp():值大于709的时候,函数溢出导致错误
<li style="text-align:justify;">盲注的分类
布尔盲注
时间盲注
dnslog外带数据
没有回显的注入
4.布尔盲注的时候经常用到的函数
if()、group_concat()、concat()、limit、ascii()、left()、right()、
5.宽字节注入的原理
当数据库使用GBK编码的时候,%df%5c可以组成一个汉字,进而绕过反斜杠的转移功能
6.堆叠注入的原理
分号(;)代表一个查询语句的结尾,所以我们可以通过分号拼接多条查询语句
7.mysql数据库的注释
单行注释:#、--(空格)
多行注释:
函数注释:/!/(内敛注释),比如/!50000select/代表当前数据库大于5.0.0版本的时候才能执行select
8.sql注入的分类
按照闭合符分类:
整形
字符型(单引号型、双引号型)
按照传参点分类:
GET型
POST型
按照注入手法分类:
布尔盲注
时间盲注
报错注入
联合注入
堆叠注入
异或注入
......
9.sql注入绕过空格
不可显示的url编码:%09、%20、%0A、%0B、+、/*/、/!*/
用括号做运算分割,代替空格的出现,比如select(username),(password)for(users);
10.sleep()函数被过滤了怎么办
用benchmark()函数代替
11.if()函数被过滤了怎么办
用case when then else end代替
12.区别不同的数据库
不同的数据库默认端口号不同,比如mysql:3306、oracle:1521、SQL server:1433
特有函数的区别,比如:只有mysql支持BENCHMARK()、只有postgre_sql支持PG_SLEEP()
注释的区别,比如:mysql是--(空格),oracle是--
特有表的不同,比如:oracle特有sys.user,mssql特有sysobjects
13.sql注入的防御
预编码
过滤
站库分离
14.如何获取shell
通过写文件,写入webshell
通过日志文件备份webshell
15.mysql数据库里面用于写文件的函数,以及读取文件的函数
写文件:
into outfile
into dumpfile
读文件
load_file()
16.sqlmap如何跑POST的注入点
用-r参数指定含有请求包的txt文件
17.sqlmap里面用于获取系统权限的参数
--os--shell
18.--os--shell的使用前提
拥有写权限
知道绝对路径
关闭转移功能
19.当传参点很多的时候,如何指定某一个传参点
-p
在参数后面加星号
20.sqlmap常用那些参数
--dump:脱数据
-D:执行库
-T:指定表
-C:指定字段
--batch:默认选择
--random-agent:随机UA头 模拟不同用户访问,防止被姿态感知
--thread:设置线程
1.中文名
跨站脚本攻击
2.XSS漏洞类型,以及区别
存储型:payload会写进数据库里
反射型:payload不会写进数据库里,由后端处理,即插即用
DOM型:由前端DOM文档解析完成,是一种特殊的反射型
3.XSS常用的事件
onclick:点击触发
onmouseover:鼠标移动到区块内
onerror:报错触发
4.XSS里获取网页COOKIE的函数
document.cookie
5.console.log函数
控制台输出日志
6.等价的弹窗函数
confirm
prompt
7.你构造XSS的时候经常用那些标签
<script>
<a>
<img>
<svg>
8.XSS的绕过方法
大小写、复写、等价函数替换、冷门事件或者标签替换
编码:
利用String.fromCharCode进行编码
html实体编码绕过
unicode编码绕过
9.XSS的防御方法
过滤:alert、script等危险字符
httponly:禁止前端JS调用本地COOKIE
1.XXE漏洞有什么危害,都是怎么实现的
文件读取:利用file协议进行文件读取,比如:<!ENTITY admin SYSTEM "file:///etc/passwd">
利用PHP伪协议进行文件读取,比如:<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=e:/1.txt">
内网探测:利用http协议,更改IP和端口的访问,实现内网探测,比如:<!ENTITY admin SYSTEM "http://127.0.0.1:22">
命令执行:当PHP开启execpt扩展的时候,可以执行系统命令,但是该条件极为苛刻,难以利用
2.实体的分类
普通实体:<!ENTITY admin "qwer">
外部实体:<!ENTITY admin SYSTEM "file:///etc/passwd">
参数实体:<!ENTITY % admin SYSTEM "file:///etc/passwd">
3.XXE如何防御
过滤:<!ENTITY SYSTEM file://等等危险字符>
关闭外部实体功能:libxml_disable_entity_loader(true)
使用libxml高于2.9.1的PHP版本
1.你记得那些文件上传的绕过方法?
前端绕过:
在浏览器关闭JS功能
Burp抓包,然后改包进行绕过
黑名单绕过:(不允许上传.php后缀的文件)
特殊后缀名,比如:php2、php3、php4
.htaccess文件绕过
.user.ini
空格绕过
点绕过
流文件绕过
双写绕过
大小写
白名单绕过:(只允许上传.jpg后缀的文件)
00截断绕过
上传图片码,再结合文件包含进行利用
解析漏洞
条件竞争
2.文件上传的防御方法
过滤:针对文件名进行过滤、针对文件内容进行过滤
文件随机重命名
禁止返回文件路径
取消上传目录的执行权限
原理
文件包含函数的参数没有进行严格的过滤,导致用户可以对参数进行控制,从而包含非预期文件
危害
网页篡改、挂马、远程控制、安装后门
常见的文件包含函数
include()
require()
include_once()
require_once()
文件包含漏洞利用的条件
web应用采用文件包含函数
用户可以控制文件包含函数
包含的文件可以被当前页面访问
文件的存放路径
文件所在目录有可执行的权限
本地文件包含
绕过方式:
00截断、协议、伪协议、双写、长路径绕过、点绕过、/.绕过、
远程文件包含
前提条件:
allow_url_fopen=On
allow_url_include=On
伪协议
php://filter/read=convert.base64-encode/resource=
php://input 包含的文件写在post请求体里
data://text/plain,<?php phpinfo();?>
zip://C://1.zip#1.php
phar://C://1.zip/1.php
file://
log文件包含
因为日志会记录我们的请求,所以利用方式就是在请求中嵌入PHP代码,然后访问log文件(access.log访问日志、error.log错误日志)
session文件包含
利用条件:
1.phpinfo界面获取session文件的存储路径
2.session可控
3.知道session文件名 sess_+sessionid
文件包含的防御
包含的文件白名单
过滤危险字符../、file、
关闭allow_url_fopen和allow_url_include
设置文件路径
原理
可以在web应用中执行系统命令,获取敏感信息
执行系统命令的函数
shell_exec()
exec()
system()
passthru()
反引号
拼接符
windows:
&
&&
|
||
linux:
;
&
&&
|
||
命令执行绕过
IFS
%09
{}
变量拼接
空变量绕过
重定向
系统变量绕过
绕过
通配符绕过
等价替换
单引号、双引号:ca't ca''t
原理
用户端输入的数据被当作后端代码执行
函数
eval()
assert()
preg_replace()
create_function()
call_user_func()
call_user_func_array()
array_filter()
usort()
uasort()
变形
$_GET
$_POST
危害
执行任意代码、写webshell、控制服务器
同源策略
域名、ip、主机、host
协议 https、http
端口 80、443、21
cookiesessiontoken:
客户端、服务端、令牌
防御
增加referer验证
手机短信验证
邮箱验证
token验证
自定义属性
原理
web应用程序存在可以从其他服务器获取数据的功能,但是服务器的地址并没有做严格的过滤,导致应用程序可以访问任意的URL链接
怎么找ssrf漏洞
能够对外发起网络请求的地方
从远程服务器获取数据的地方
处理文件的地方
危害
1.file伪协议读取本地文件
2.端口扫描
3.指纹识别
ssrf防御
限制HTTP端口,尽可使用http https
检查IP是否内网IP,进行黑名单过滤
进制不需要的协议,gopher、file、ftp等
同意错误信息,避免攻击者利用错误信息判断远程端口状态
host白名单
dns缓存
CSRF和SSRF的区别:
csrf用于盗用身份、ssrf用于从web应用获取数据
函数
serialize():对象转化为字符串
unserialize():恢复对象
逻辑漏洞的挖掘步骤
尝试正确操作流程
分析数据包,找到有效数据
构造数据包进行猜测
密码找回
暴力破解
返回凭证
邮箱弱token
用户凭证有效性
重新绑定
服务器验证
用户身份验证
本地验证
逻辑漏洞之密码找回漏洞(semcms) - 云+社区 - 腾讯云
垂直越权
普通用户--管理员
水平越权
普通用户--普通用户