0
点赞
收藏
分享

微信扫一扫

.Net 知识杂记

yundejia 2024-03-30 阅读 13
sqlweb安全

一、sql注入的简介

将一段内容传入到目标网站,这段内容会被当做程序来执行

二、MySQL扩展补充

mysql的结构

  • 表名
  • 字段
  • 数据

mysql的用户

  • 管理员:跨库、文件读写操作
  • 普通用户:猜解

判断目标网站的用户类别

  • 白盒:读代码
  • 黑盒:user()

使用mysql 5.0以上版本

mysql5.0以及5.0以上的版本都存在一个系统自带的系统数据库,叫做:information_schema 5.0以上为多用户。information_schema下面又包含了这几张表:schemata、tables、columns。

表1:schemata:记录了系统中所有的库名,包含一个关键字段

  • schema_name:保存的库名
select schema_name from information_schema.schemata

表1:tables:记录了系统中所有的表名,包含两个关键字段

  • table_schema:保存的库名
  • table_name:保存的表名
select table_name from information_schema.tables where table_schema=xxxx

表二:columns:记录当前系统中的字段名,包含三个关键字段

  • table_schema:保存的库名
  • table_name:保存的表名
  • column_name:字段名
select column_name from information_schema.columns where table_schema=xxx and table_name=xxx

SQL注入的常用函数

  • user()                当前所使用的用户名
  • datebase()        当前所使用的库名
  • version              当前MySQL的版本

三、SQL注入的流程

3.1 简介

常用的注入方法:

  • 手工注入
  • sqlmap
  • python+sqlmap

3.2 sql注入的流程

1. 判断是否存在漏洞

2. 判断目标网站的数据库中的表中有几个字段

3. 找到网页中回显位

4. 找到数据库的库名

5. 找到数据库的表名

6. 找到字段名

7. 找数据

四、管理员身份注入

文件读写

load_file("目标文件")                    //可以读取文件内容"
select "内容" into outfile "目标文件"    //可以向网站目录下的文件里写内容

读取文件结果可能是NULL的可能原因

查看环境变量

show global variables     // 全局
show session variables    // 会话

设置环境变量

set global 变量名=值
set session 变量名=值

文件读写权限控制

secure_file_priv=null    不允许进行读写操作
secure_file_priv=路径    只允许在特定的目录下进行读写操作
secure_file_priv=' '     允许随意进行读写操作

真实环境中secure_file_priv 往往都是处于开启状态的,绕过的基本思路就是结合慢查询日志

获取网站根目录的途径

五、php的相关函数

5.1 php的等号

5.2 md5绕过

<?php
    for ($a=1;$a<=100000000;$a++){
        $md5=md5($a)
        if(preg_match('/^0e\d+$/',$md5)){
            // \d+ 表示一个或多个数字字符
            echo $a;
            echo "\n";
            echo $md5;
            echo "\n";
        }
    }
?>

5.3 intval

绕过的基本思路

案例:

var_dump(intval(012));
echo"<br>";
var_dump(intval(0xB));
echo"<br>";

var_dump(intval(array()));
echo"<br>";
var_dump(intval(array('1111',22222)));
echo"<br>";

var_dump(intval(1.2));
echo"<br>";
var_dump(intval("1.2"));
echo"<br>";

var_dump(intval("abc123"));
echo"<br>";

var_dump(intval("123abc"));
echo"<br>";

var_dump(intval("012"));
echo"<br>";

var_dump(intval(3+4));
var_dump(intval(3*4));
var_dump(intval(03+4));
var_dump(intval(03*4));
echo"<br>";

各种进制的开头

十进制:
二进制:0b  0B
八进制:0   0O  0o
十六进制:0x   0X

5.4 strpos

5.5 is_array()

安全隐患/绕过思路

5.6 perg_match

返回值

绕过思路

3.7 str_replace

绕过思路

举报

相关推荐

0 条评论