一篇文章带你深入理解 SQL 盲注

原文首发于安全客:https://www.anquanke.com/post/id/170626

0X00 前言

简单的整理一下关于 SQL 盲注的一些想法(主要是针对 MYSQL,当然其中也不免夹杂着一些 SQL Server 和Oracle的知识),希望能有更清晰的思路和不一样的思考。

0X01 盲注的一般模式

盲注的本质是猜解(所谓 “盲” 就是在你看不到返回数据的情况下能通过 “感觉” 来判断),那能感觉到什么?答案是:差异(包括运行时间的差异页面返回结果的差异)。也就是说我们想实现的是我们要构造一条语句来测试我们输入的布尔表达式,使得布尔表达式结果的真假直接影响整条语句的执行结果,从而使得系统有不同的反应,在时间盲注中是不同的返回的时间,在布尔盲注中则是不同的页面反应。

如图所示:

此处输入图片的描述

Mehr lesen

PHPINFO 中的重要信息

0X00 前言

思考一下获得了 PHPINFO 以后我们需要观察哪些比较重要的信息来帮助我们进一步渗透

0X01 PHPINFO 中的敏感信息

1.PHP 版本信息

我们知道 PHP 不同版本之间在很多方面都有着差异,当然我么重点关注的肯定是一些函数参数以及一些安全性机制的差异。特别是 PHP5 和 PHP7 之间的差异尤其的大,因此知道了 PHP 的确切版本是我们需要做的第一步。

此处输入图片的描述

Mehr lesen

PHP 中可以利用的危险的函数

0X00 前言

本文主要对 PHP 中的 disable_functions 以及一些可能会遭到利用的函数做一个罗列,并简单解释。

0X01 比较全的 disable_functions

system,shell_exec,passthru,exec,popen,proc_open,pcntl_exec,mail,putenv,apache_setenv,mb_send_mail,assert,dl,set_time_limit,ignore_user_abort,symlink,link,map_open,imap_mail,ini_set,ini_alter,其他函数

1.system

原型:

system ( string $command [, int &$return_var ] )

描述:

同 C 版本的 system() 函数一样, 本函数执行 command 参数所指定的命令, 并且输出执行结果。

如果 PHP 运行在服务器模块中, system() 函数还会尝试在每行输出完毕之后, 自动刷新 web 服务器的输出缓存。

如果要获取一个命令未经任何处理的 原始输出, 请使用 passthru() 函数。

Mehr lesen

PHP 中的转义函数小结

0X00 前言

代码审计的时候经常会遇到种类繁杂的转义函数,最可怕的是他们长的都很像,还是拿出来总结一下吧。

0X01 addslashes() –>(PHP 4, PHP 5, PHP 7)

用法:

string addslashes ( string $str )

返回值:

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)。

一个使用 addslashes() 的例子是当你要往数据库中输入数据时。 例如,将名字 O’reilly 插入到数据库中,这就需要对其进行转义。 强烈建议使用 DBMS 指定的转义函数 (比如 MySQL 是 mysqli_real_escape_string(),PostgreSQL 是 pg_escape_string()),但是如果你使用的 DBMS 没有一个转义函数,并且使用 \ 来转义特殊字符,你可以使用这个函数。 仅仅是为了获取插入数据库的数据,额外的 \ 并不会插入。 当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ‘ 时将使用 ‘ 进行转义。

Mehr lesen

浅谈前端“源”相关

0X00 前言

同源策略是前端安全的基石,想学好前端安全的第一步也是最重要的一步就是深入理解同源策略以及和同源策略相关的比如 cors csp jsonp 还有 xss 经常会涉及的 cookie 作用域,以及脚本源的归属问题,原先只是简单的了解,于是打算抽出一点时间再次强化一下对其的理解,以便后期能对前端的安全作出更加深入的分析和探究。

0X01 同源策略

为了下面的解释让人更好理解,我想要先解释一下同源策略

1.什么叫同源

同源,就是协议、域名、端口号相同的URL,但凡这里面有一个不一样,我们就认为是不同源

此处输入图片的描述

下面我们来举一个实际的例子帮助我们理解一下

Mehr lesen

业务 Web 漏洞攻击与防御的思考

0X00 前言

随着网络安全观念的进一步强化,以及在开发过程中越来越成熟的自动化防护机制使得基础 web 漏洞的挖掘和利用变得越来越困难,所以加强对业务安全逻辑漏洞的学习和利用变得尤其重要,这篇文章也算是我学习和思考的一个记录。

0X01 为什么学习业务安全

其实除了我个人在实战中深刻的体会到基础 Web 漏洞的挖掘困难以外(常常是 xss 或者 csrf之类的,sqli 都少之又少),我还从一些安全事件(比如 pdd 的百元优惠券)中发现业务逻辑的安全漏洞可能造成的危害更大,涉及到的经济利益也更多,这也成为了不法分子重点关注的对象,我们作为安全研究人员也要重点学习研究。

Mehr lesen

再谈 Cookie 和 Session 安全性

0X00 前言

最近整理一些关于业务安全的东西,然后又遇到了这个问题,虽然自己每次提到这个问题第一反应都是一个是在服务器端保存另一个是在客户端保存,但我知道这并不是正确的答案,因为 session 也需要在客户端保存一个标识符 session_id,所以还是想再写一下这个问题,因为实际上一年前左右我已经写过一篇关于 cookie 和 session 的文章,有关 cookie 和session的一些探究,那这篇文章就叫做“再谈”吧。

注意:
攻击者有两种方式获取 cookie ,一种是通过中间人攻击,一种是利用 XSS 这里我们就不讨论中间人攻击对两者的影响,因为这个可以使用 SSL 进行传输防止中间人攻击,设置 cookie 的时候只要加一个Secure 选项就可以保证只在 https 的情况下传输 cookie 了。

Mehr lesen

基础 Web 漏洞攻击与防御的思考

0X00 前言

未知攻焉知防,攻与防的较量每天都在上演,但这些攻击都逃不过这几大基本的漏洞类型,下面我简单的列举的了几个漏洞类型,并对其中比较重要的漏洞的产生原因、攻击方法、防御措施做了一个简单的分析,并加入了一些自己的思考。

0X01 页面展示类漏洞

一、XSS

1.XSS 的类型

(1)反射型

攻击者会通过社会工程学手段,发送一个URL连接给用户打开,在用户打开页面的同时,浏览器会执行页面中嵌入的恶意脚本。

(2)存储型

Mehr lesen

MYSQL 基础语法的详细归纳

0X00 前言

做安全最困难的恐怕就是知识点过于杂碎,涉及面过于广阔,所以趁还记得,没事就总结完善备忘一下(参考一些资料,并加入一些自己使用过程中的理解),以防老了失忆,平时短路了拿出来查一下也是不错的。

0X01 基本语法

这一小节主要介绍的是一些增删改查的基本语法

(1)select

mysql 中 select 命令中允许不出现数据库或者数据表的名字,也就是可以没有 from ,这种情况下能将执行结果返回成一个单行单列的表格,例如 select now();返回当前时间。

Mehr lesen

对 SSL 技术的详细归纳

0X00 前言

从大一开始就读过网上的各种关于 SSL 分析的文章,但是由于知识水平的不到位,也只是似懂非懂的,能说个大概但是再细节一点就懵逼了,不过上学期学了密码学,学的时候我就特地的对有关这部分的内容重点关注了一下,想这次必须要彻底弄清楚了,并且 SSL 也是我们当前互联网的加密传输与通信的典范案例,弄清楚细节对日后的学习工作必有大的帮助。

SSL利用数据加密(对称密码)、身份验证(数字签名+PKI/CA)和消息完整性验证机制(MAC),为基于TCP等可靠连接的应用层协议提供安全性保证。本文会简单介绍SSL的产生背景、技术优点、安全机制及工作过程。

注: PKI (Public Key Infrastructure 公钥基础设施)

Mehr lesen