| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> SQL注入总结 -> 正文阅读 |
|
[PHP知识库]SQL注入总结 |
? ? ?在本系列课程学习中,SQL注入漏洞将是重点部分,其中SQL注入又非常复杂,区分各种数据库类型,提交方法,数据类型等注入,我们需要按部就班的学习,才能学会相关SQL注入的核心。同样此类漏洞是WEB安全中严重的安全漏洞,学习如何利用,挖掘,修复也是很重要的。 1、信息收集获取当前网站的操作系统
获取数据库名
获取数据库用户
获取数据库版本
获取数据库路径
获取网站路径https://www.jb51.net/hack/5782.html 在MySQL中如何使用LOAD_FILE()函数?(代码示例)-mysql教程-PHP中文网 2、数据注入知识点:
2、数据库中符合"."代表下一级,如dvwa.user代表dvwa数据库下的user表 information_schema.schemata 记录所有数据库信息的表 information_schema.tables 记录所有表名信息的表 information_schema.columns 记录所有列名信息的表 例如普通的查询语句:
该语句是向information_schema.tables表中,查table_schema字段等于'dvwa'的table_name字段内容,有点绕......还是看看实例吧。 这是一张user表的全部内容 下面是向user表中,查询Host字段等于%或localhost的User字段内容。 3、高权限注入进行跨数据库查询就一个权限问题而已,某些网站对应数据库用户权限只能查看某个数据库,而高权限数据库用户可以查看多个数据库,步骤和普通的注入差不多,这里不再赘述。 进行文件读取利用条件数据库为高权限用户 secure_file_priv可导入 查询语句: show global variables like '%secure_file_priv%'; select @@secure_file_priv; 对应的情况 Value 说明 NULL 不允许导入导出 /tmp 只能在/tmp目录导入导出 空 不限制目录 在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件 在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件 在window系统下采取这样的方式读文件,而不是这种C:\Users\zhang\Desktop\php\PHPTutorial\MySQL\data,因为\后加字符在编程语言中有特殊含义,例如c语言中\n是换行。
在linux系统下
写webshellinto outfile写shell利用条件
原生SQL语句写shell:
sqlmap中可以如下操作:
一般情况下 Linux 系统下面权限分配比较严格,MySQL 用户一般情况下是无法直接往站点根目录写入文件的,这种情况下在 Windows 环境下成功率会很高。 日志文件写shell利用条件
MySQL 5.0 版本以上会创建日志文件,可以通过修改日志的全局变量来 getshell mysql> SHOW VARIABLES LIKE 'general%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+---------------------------------+ | general_log | OFF | | general_log_file | /var/lib/mysql/c1595d3a029a.log | +------------------+---------------------------------+ general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。 可以尝试自定义日志文件,并向日志文件里面写入内容的话,那么就可以成功 getshell: # 更改日志文件位置 set global general_log = "ON"; set global general_log_file='/var/www/html/info.php'; # 查看当前配置 mysql> SHOW VARIABLES LIKE 'general%'; +------------------+-----------------------------+ | Variable_name | Value | +------------------+-----------------------------+ | general_log | ON | | general_log_file | /var/www/html/info.php | +------------------+-----------------------------+ # 往日志里面写入 payload select '<?php phpinfo();?>'; # 此时已经写到 info.php 文件当中了 root@c1595d3a029a:/var/www/html/$ cat info.php /usr/sbin/mysqld, Version: 5.5.61-0ubuntu0.14.04.1 ((Ubuntu)). started with: Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock Time Id Command Argument 201031 21:14:46 40 Query SHOW VARIABLES LIKE 'general%' 201031 21:15:34 40 Query select '<?php phpinfo();?> 这里虽然可以成功写入,但是这个 info.php 是 MySQL 创建的 : -rw-rw---- 1 mysql mysql 293 Oct 31 21:15 info.php Apache 访问这个 php 文件会出现 HTTP 500 的状态码,结论是 root 系统这种情况基本上不会成功,只有在 Windows 系统下成功率会高一些,不过这里还是可以当做小知识点来学习记录。 --os-shell
详细请看sqlmap --os-shell 原理详解_ZredamanJ的博客-CSDN博客 --os-cmd
--sql-shell
4、常见写入问题魔术引号设计的初衷是为了让从数据库或文件中读取数据和从请求中接收参数时,对单引号、双引号、反斜线、NULL加上一个一个反斜线进行转义,这个的作用跟addslashes()的作用完全相同。 对于这种情况可以采取字符转十六进制绕过,如果编码方式是gbk的情况下,还可以采取宽字节注入绕过。 php中get_magic_quotes_gpc()函数详解-php教程-PHP中文网 5、int函数对输入的东西进行判断是否为数字 if(is_int($id)){ $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; echo $sql; $result=mysql_query($sql); }else{ echo 'ni shi ge jj?'; } 参考文章?SQLMAP怎么拿shell_Aim High的博客-CSDN博客_sqlmap拿shell sqlmap --os-shell执行原理(mysql篇) - 小明-o3rr0r - 博客园 (cnblogs.com) |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 7:03:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |