SQL注入---05--跨站注入

发布于:2025-05-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

 1 权限说明

 select * from mysql.user;

这里的Y表示我前面的命令权限为root,n表示不支持root权限


导致结果:

如果为root的话,我就可操作这些命令并且可以进行跨数据库攻击,但是如果不是高权限root就无法执行这些操作 

2 root权限

id=-1%27%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata--+

 可以拿到同一个服务器上面的所有的数据库名称,通过information_schema.schemata这个表里面的 schema_name表可以拿到所有数据库的名称

2.2 获取dvwa数据库的表,列,数据信息

id=-1%27%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27dvwa%27--+

拿到了其他数据库的表名

获取列名:

使用column_name,x from infomation_schema.column where column_schema=' xxx' and table_name = 'xxx' 后面必须要跟表名,因为可能会涉及到其他数据库有相同的表名,所以需要限制表名字

3 闲谈

根据图片知识我们可以了解到,在当前数据库如何查别的数据库字段的信息(图中的users字段并没有在数据库dvwa中有,所以这样查---跨站注入)

4 文件读写

load_file() ----读取函数

into_outfile或into_ dump_file:导出函数 

select load_file(C:/DumpStack.log):读取文件

因为这里权限不够,所以为空值

写东西:

SELECT 'x' INTO OUTFILE 'd:/www.txt';

5 路径获取

1 报错显示

2 遗留文件

这里会有路径完整信息

3 漏洞报错

某个框架的发布漏洞报错(cms,th)

4 平台配置文件

比如说php的php.init,里面就会有路径

读取配置文件:

写后门:

常见文件写入问题:
魔术开关:

magic_quotes_gpc:当开启这个魔术开关后,会对单引号(‘),双引号(“),反斜线(/),null进行转义,会强制加/在前面 -------addslashes()这个函数跟魔术开关差不多的效果

怎么绕过魔术开关呢?
1,编码

使用hex编码,mysql数据库可以解析,就可以绕过

2,宽字节注入

%df:大概就是能够将转义符号跟%df合一起变成一个文字

5 爆破(字典--无法之法)

常见路径爆破:

windows: d:/www/xfy

linux: /var/www/xfy

6 防御:

1,类型判断

is_int:设置在变量那个位置进行过滤,如果有字符进去,直接判断错误

is_array

2,自定义关键字

将变量ID里面输入的select变成了fuck

3 ,防护软件

安全狗,云盾,宝塔


网站公告

今日签到

点亮在社区的每一天
去签到