二次注入
二次注入原理
二次注入的原理:在第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 mysqli_real_escape_string 对其中的特殊字符进行了转义,但是 addslashes 有一个特点就是虽然参数在过滤后会添加 \ 进行转义,但是 \ 并不会插入到数据库中,在写入数据库的时候还是保留了原来的数据。
如下代码所示:
12345678910<?phperror_reporting(0);$con = new mysqli();$con->connect('localhost', 'root', 'root', 'security', '3306');$username = mysqli_real_escape_string($con, $_GET[1]);$pass = mysqli_real_escape_string($con, $_GET[2]);$sql = "insert into users (usernam ...
MySQL 文件读写
如果数据库的配置权限不当,攻击者可以通过 SQL 语句读写文件来进行进一步攻击以获取更多的权限,如读取网站配置文件、修改注册表文件、写入木马等。
读写权限判断/设置
MySQL 读写关键字段:secure_file_priv
secure_file_priv 关键值:
取值
含义
null
表示不允许读取/写入
dir
表示读取/写入限制在特定目录下
空值
表示读取/写入可以在任意目录下
权限查看:
123456789101112131415mysql> select @@secure_file_priv;+--------------------+| @@secure_file_priv |+--------------------+| NULL |+--------------------+1 row in set (0.00 sec)mysql> show variables like "secure_file_priv";+--------- ...
XSS-Game
本篇文章参考:https://www.sqlsec.com/2020/01/xss.html
在很久很久以前,就接触到了 XSS 部分的内容,当时用的 Github 上下载的源码进行的,最近打算翻新一下这部分知识。
但是 Github 上的源码好像下架了,这里使用国光大佬的整理过的。
项目地址:https://github.com/sqlsec/xssgame
直接解压源码到 HTTP 服务的目录下,浏览器直接访问即可,无需配置数据库等信息:
Level-1
漏洞源码如下:
1234<?php ini_set("display_errors", 0);$str = $_GET["name"];echo "<h2 align=center>欢迎用户:".$str."</h2>";
源码分析:
ini_set("display_errors", 0);:用于设置 PHP 的错误显示级别为 0,这意味着将不会在页面上显示任何 PHP 错误信息 ...