安全基础知识详解

本文阅读 13 分钟
首页 安全分享,WEB安全 正文

目录

Linux

1.如何查看已经开放的端口

2.如何查看进程

3.历史命令文件的位置

Windows

1.查看已开放的端口

2.查看进程

sql注入

1.sql注入的原理

2.报错函数有哪些

4.布尔盲注的时候经常用到的函数

5.宽字节注入的原理

6.堆叠注入的原理

7.mysql数据库的注释

8.sql注入的分类

9.sql注入绕过空格

10.sleep()函数被过滤了怎么办

11.if()函数被过滤了怎么办

12.区别不同的数据库

13.sql注入的防御

14.如何获取shell

15.mysql数据库里面用于写文件的函数,以及读取文件的函数

16.sqlmap如何跑POST的注入点

17.sqlmap里面用于获取系统权限的参数

18.--os--shell的使用前提

19.当传参点很多的时候,如何指定某一个传参点

20.sqlmap常用那些参数

XSS

1.中文名

2.XSS漏洞类型,以及区别

3.XSS常用的事件

4.XSS里获取网页COOKIE的函数

5.console.log函数

6.等价的弹窗函数

7.你构造XSS的时候经常用那些标签

8.XSS的绕过方法

9.XSS的防御方法

XXE:外部实体注入

1.XXE漏洞有什么危害,都是怎么实现的

2.实体的分类

3.XXE如何防御

文件上传

1.你记得那些文件上传的绕过方法?

2.文件上传的防御方法

文件包含

原理

危害

常见的文件包含函数

文件包含漏洞利用的条件

本地文件包含

远程文件包含

伪协议

log文件包含

session文件包含

文件包含的防御

命令执行

原理

执行系统命令的函数

拼接符

windows:

linux:

命令执行绕过

代码执行

原理

函数

危害

CSRF(客户端请求伪造)

同源策略

cookiesessiontoken:

防御

SSRF(服务端请求伪造)

原理

怎么找ssrf漏洞

危害

ssrf防御

CSRF和SSRF的区别:

PHP反序列化

函数

逻辑漏洞

逻辑漏洞的挖掘步骤

密码找回

垂直越权

水平越权

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) - 云+社区 - 腾讯云

垂直越权

普通用户--管理员

水平越权

普通用户--普通用户

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/m0_63127854/article/details/125341478
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复