安全事件分析之SQL盲注溯源

访客4年前关于黑客接单898

1. 概述

以下内容为一个CTF题引出的内容,经常玩CTF的大佬们可以直接跳过。

偶然的机会朋友发我一个日志文件,让我看一下服务器access.log文件,说这个是一个CTF的题目,就给了这么一个access文件,然后让找flag,由于自己属于专业划水的,CTF基本没碰过,也不知道怎么弄就试着分析了一下。

打开日志文件文件里面内容基本长这个样子。

1614065261_6034ae6da9ab9f2b35446.png!small?1614065264522

2. 日志分析? ? ?

大概浏览了一下日志文件发现,CTF都这么直接的吗,连点干扰流量都没有,整个文件就只有一个访问者。因此都不需要对找攻击者地址。在实际的安全事件分析过程中会存在大量正常业务流量,因此下面我在进行事件分析的时候还是按照正常的分析过程来展开说明以免有遗漏的地方。

我在进行日志分析的时候主要会执行404统计定位攻击者、500统计、目录遍历定位攻击者、200统计评估攻击影响。

1. 攻击行为取证

(需要注意的是此处的攻击行为取证并非司法取证,司法取证有一套完整的流程和注意事项,如哪位有兴趣可以去研究一下)如果经常进行日志分析师建议使用专业的日志分析工具,以便更好的检索,若日志文件较小,可直接使用notepad++来进行分析,由于样本文件较小因此这里我直接使用notepad++来进行分析。

首先我喜欢先统计一下404响应的数量,因为这样可以最直接的反映出攻击流量的情况,如果该 *** 没有明显结果,则可以通过其他方式进行判断。

1613898581_6032235537154b768b658.png!small

若404状态统计结果较多,通过显示所有404记录,查看404(如果您无法理解404,抱歉这里并不会解释这么详细您可以查看百度百科“HTTP响应头404”)页面产生的原因,本样本日志可以非常明显的看出大部分404流量是由扫描器产生,因此可以断定这个地址非常可疑,至少在一段时间内他在不断的尝试攻击我们的服务器。

1613899150_6032258e7e18a030bd687.png!small

由于样本文件交简单,都是扫描器产生的行为,因此没有500状态的流量,此处就不展开分析,直接带过。在分析过程中记录下来我们发现的异常IP,对异常IP进行攻击流量提取,此处提取是用的notepad++的正则表达式方式进行检索全文,至于正则表达式的具体用法请参考正则表达式基础语法,本文中的主要以上是查找192.168.8.254开头的行,返回状态是404的,进行全部查。

1613900174_6032298ea28cc5034afd4.png!small

通过该 *** ,遍历500、301、302等基本可以检索出攻击者所有攻击行为。

2. 攻击确认

经过上面的过程我们基本可以锁定攻击者及攻击者发动的攻击行为,此阶段需要完成的工作就是评估攻击行为对目标产生的影响。

使用上面取证的 *** 找出攻击者所有200状态的请求

1613901100_60322d2c4df9ae15de4f9.png!small

此处的日志没有任何其他内容,通过日志可直接看出,攻击者在使用SQLMAP进行注入攻击且以攻击成功。

存在漏洞的页面为:/index.php参数为:id

为了便于分析我首先将文件进行url解码,url解码方式有很多,比如这里文件比较小可以直接通过工具网站在线解码URL解码工具,用脚本处理是直接解码也可以。

解码示例如下:

1614065144_6034adf8a3f947c72bd7a.png!small?1614065145927

对文件内容进行url解码后内容比较清晰,可以看到如下内容:

1614065640_6034afe866059484c19df.png!small?1614065641613

通过这三个请求可以判断出这个地方存在一个注入漏洞,攻击者通过盲注方式判断出该漏洞存在。

3. 攻击影响

通过上面的分析工程我们可以确定攻击者在服务上找到了sql注入漏洞,并成功触发了验证了sql漏洞可利用,那么攻击在在是否利用该漏洞进行了其他操作,若攻击者利用了该漏洞,那影响范围都涉及哪些表呢?我们继续分析。

此处纠结3分钟,是否需要补充一部分sql注入的基础知识以完善文章的完整性,最后决定还是简述一下吧,因为这个文章大佬也想看,想看的人若还感觉不完整那就不太好了。

====================分割线以内可以跳过====================

sql盲注基础知识参考sql盲注利用、sql盲注利用,我觉的两位师傅对sql盲注的利用说的已经够详细了我就不具体说明了,这里知识简单提一下:

SQL注入:由于程序在进行开发时未对用户输入内容进行过滤,用户在输入可以操作SQL语句的字符时可以成功带入到sql语句中执行,比如您的程序写的是sql=“select user、passwd from users where user=”.$user."and passwd=".$passwd此时如果user和passwd变量如果是日志前台获取那么用户就可以直接控制您SQL语句的执行了。

盲注:其原理和SQL注入一样,但是成员在开发时可能对程序进行了异常捕获或通过接口方式进行数据提取,系统只向前台输出读取状态,这时候就形成了SQL盲注

利用:SQL盲注主要分为布尔型和时间型,布尔型可以通过CASE WHEN? THEN、ascii+mid、ascii+substr、ord+mid等,时间型盲注可以通过sleep函数来判断系统返回时间。

布尔型/时间型区别:刚开始只使用工具测试注入的时候可能无法很好理解时间型盲注和布尔型盲注的区别,举个简单的例子:程序员对异常输出控制的比较好,所有sql语句执行失败的时候只返回查询失败,查询成功系统返回查询的数据,这种就是布尔型。时间型盲注比如我们在查看一个投票也面的时候,输入查看的对象ID,但系统默认返回全部对象页面,但是系统会在内部执行一次查询。就是查询和显示是无关的,显示内容不会sql语句执行的结果变化而变化。

=====================================================

通过分析可以确定系统存在sql注入漏洞,因此需要评估攻击者在利用该漏洞读取过哪些内容。通过mysql的特性可以通过搜索from INFORMATION_SCHEMA依次分析攻击者读取信息。

上面读取数据库信息,判断数据库名字之一个字符,通过此 *** 依次枚举出数据库名,然后根据读表的顺序依次分析出攻击者获取的表名、列名、以及记录数量。

若一条一条分析日志记录,读取数量大了将异常痛苦,因此我编写一个脚本来自动完成其他分析情况。脚本运行情况如下:

1614063194_6034a65a15f009db090e8.png!small

在进行分析过程中可能会遇到16进制数,如下面这条记录:

1614064871_6034ace782175cfb872ed.png!small

0x666c6167就是16进制转换成字符串即为:flag。

相关文章

黑客帝国手机下载免费版(黑客帝国在线完整版免费)

黑客帝国手机下载免费版(黑客帝国在线完整版免费)

本文目录一览: 1、黑客帝国2:重装上阵高清完整版下载 2、《黑客帝国》txt全集下载 3、黑客帝国3:矩阵革命高清完整版下载 4、黑客帝国在手机的哪个播放器上能免费看到 5、黑客帝国...

下半年医改看点:构筑更加强大的医疗卫生体系

新华社北京7月28日电题:构筑更加强大的医疗卫生体系——2020年下半年医改看点扫描 新华社记者王琳琳、田晓航 近日,国务院办公厅印发了《深化医药卫生体制改革2020年下半年重点工作任务》,在新冠...

励志电视剧推荐?人生必看的10部电视剧

励志电视剧推荐?人生必看的10部电视剧

现在无论是男女老少都非常的喜欢看电视剧,在空闲的时间追上两集电视剧可以说是非常的惬意了。电视剧因为有着紧密的剧情,能够让观众代入其中,所以很多人喜欢。有些励志电视剧还会鼓舞追梦的人,下面就由我为大家介...

黑客联盟商业化公司(网络黑客联盟)

黑客联盟商业化公司(网络黑客联盟)

本文导读目录: 1、中国第一个黑客是谁? 2、中国有那些黑客组织 3、现在中国最权威的黑客组织是什么? 4、中国十大黑客排名是什么?有什么事迹? 5、什么是中国红客联盟? 中国红客联盟...

斯里兰卡是哪个国家(斯里兰卡国家概述)

斯里兰卡是哪个国家(斯里兰卡国家概述)

斯里兰卡国家概述 (更新:2019年1月) 【国家名字】 斯里兰卡民主化社会主义社会中华人民共和国(The Democratic Socialist Republic of Sri Lanka)。...

有这样几个情人才是女人的宝贵财富 6种方法

很多人看到这个话题都非常惊讶,或者他们可能认为这是一个花心的女人,因为他们认为女人的花心和男人的花心是一样的,但它的花心有本质的区别,因为一个男人可以再爱一个女人的同时,心里还在想着一些女人,但是女人...