我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP代码审计入门-万能密码入门分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP代码审计入门-万能密码入门分析

0x00  写在前面

从零学习php,最终目的实现代码审计入门,软件采用sublime text,环境使用phpstudy搭建,数据库是navicat,需要有简单的html基础和php基础,跟随流沙前辈视频学习记录。

本章开始,正式进入代码审计的世界。让me看看曾经让我遥不可及的代码审计能不能慢慢啃下来。

同时,文章还是需要一丢丢些基础的,包括但不限于html、php、mysql和渗透知识。

0x01   代码审计-万能密码

sql三种注释

单行注释

        select user_name from users where user_id;--这时注释

        select user_name from users where user_id;-- 这时注释(要空格)

多行注释

        select user_name from users where user_id;

同时,注意注入和sql语法的异同,参考链接如下:

SQL注入中,注释#、 --+、 --%20、 %23到底是什么意思?sqli-labs-master_51CTO博客_sql注入注释

常用的测试万能密码,参考链接如下:

sql注入之万能密码总结 - 腾讯云开发者社区-腾讯云

真正测试的语句并没有这么多,而且现在存在万能密码的站点已经很少见仅作摘录' or 1='1'or'='or'adminadmin'--admin' or 4=4--admin' or '1'='1'--admin888"or "a"="aadmin' or 2=2#a' having 1=1#a' having 1=1--admin' or '2'='2')or('a'='aor 4=4--ca'or' 4=4--"or 4=4--'or'a'='a"or"="a'='a'or''=''or'='or'1 or '1'='1'=11 or '1'='1' or 4=4'OR 4=4%00"or 4=4%00'xoradmin' UNION Select 1,1,1 FROM admin Where ''='1-1%cf' union select 1,1,1 as password,1,1,1 %23117..admin' or 'a'='a 密码随便'or'='or''or 4=4//用户登录require "./lib/init.php";header("Content-type:text/html;charset=utf-8");if(empty($_POST)){    //header('Location: register.php');    echo "登录信息为空";    header("Refresh:3;url=login.php");}else{    if(isset($_POST["user_name"]) && isset($_POST["user_pass"])){      //接收数据,是否设置了user_name、user_pass        $usename = trim($_POST["user_name"]);       //trim用来去除字符串首尾的空格,此处假如用-- 来注释后有问题的        $password = trim($_POST["user_pass"]);      //对用户的输入也并没有做任何过滤        //接收username,user_pass        $password = md5($password);  //接收到password进行md5加密,所以如果密码进行aa' or 1#是没有用的,因为作了md5加密        $sql = "select * from users where user_name='$usename' and user_pass='$password'";                                $selectSQL = new MySql();    //实例化对象        $user_data = $selectSQL->getRow($sql);  //跟进getrow,看getrow代码逻辑                    if($user_data!="")        {            session_start();            $_SESSION["user"] = $user_data["user_name"];            header("Location: user.php");        }else{            echo "用户名或者密码错误!";            header("Refresh:3;url=login.php");        }    }else{        echo "登录信息不完整";        header("Refresh:3;url=login.php");    }}

为更好理解代码,跟进到getrow,看getrow代码逻辑,发现getrow仅用来返回sql语句

跟进到link,link仅作为数据库连接作用

因万能密码也是较为简单,基本审计思路已经完成。

0x02  防御手段

常用手段是对于用户输入的字符串进行严格过滤,这里代码仅使用了addslashes()用于过滤,其实该函数也是存在绕过风险的,但我们的目的是学习,馒头一口一口吃。

夜已深,今日先到此为止吧。如有错误,欢迎指正。

来源地址:https://blog.csdn.net/m0_60988110/article/details/127199943

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP代码审计入门-万能密码入门分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Rollup入门实例代码分析

这篇文章主要介绍了Rollup入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Rollup入门实例代码分析文章都会有所收获,下面我们一起来看看吧。Rollup介绍及使用1、Rollup 概述仅仅是
2023-07-05

PHP反序列化入门代码实例分析

本文小编为大家详细介绍“PHP反序列化入门代码实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP反序列化入门代码实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php反序列化简单理解首先我们需要
2023-07-05

Canvaskit快速入门实例代码分析

这篇“Canvaskit快速入门实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Canvaskit快速入门实例代码
2023-07-05

Java注解入门案例代码分析

这篇文章主要介绍“Java注解入门案例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java注解入门案例代码分析”文章能帮助大家解决问题。Talk is cheap, show me the
2023-07-05

Python快速入门实例代码分析

这篇文章主要介绍了Python快速入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python快速入门实例代码分析文章都会有所收获,下面我们一起来看看吧。Python 安装已经安装软件的小伙伴要检
2023-07-05

Python爬虫技术入门实例代码分析

这篇“Python爬虫技术入门实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python爬虫技术入门实例代码分析
2023-07-05

react-router-dom路由入门实例代码分析

这篇文章主要介绍了react-router-dom路由入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react-router-dom路由入门实例代码分析文章都会有所收获,下面我们一起来看看吧。r
2023-07-05

vue组合式API入门实例代码分析

这篇文章主要讲解了“vue组合式API入门实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue组合式API入门实例代码分析”吧!组合式API在vue3.0发布的时候,组合式API
2023-07-05

PHP代码审计:深入解析,揭开安全隐患

:PHP代码审计是确保应用程序安全的重要一步,通过分析代码,可以识别出潜在的安全漏洞,防止攻击者利用这些漏洞进行攻击。本文将深入解析PHP代码审计的流程和方法,揭开安全隐患,并提供演示代码,帮助读者理解和应用PHP代码审计技术。
PHP代码审计:深入解析,揭开安全隐患
2024-02-09

C# Marshal类基本概念和入门实例代码分析

本文小编为大家详细介绍“C# Marshal类基本概念和入门实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C# Marshal类基本概念和入门实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录