大家问候,你好吗? 希望您一切都好,然后再听。 听我离开美国并来到亚洲或欧洲以及其他所有国家时发生的一切。 我开始讲话,我站在舞台上并开始与人们交谈,我告诉他们……在政治上怎么说……不是美国人的人也是该死的好人,我很高兴见到他们并听到他们的声音。

听着,我想您会正确理解我的,所以放松一点,伸直肩膀,我很认真! 好的,当我在这里工作时,希望您能与我保持联系。 我有一个无线访问点和几个容易受干扰的应用程序,完全混乱不堪,我有个主意如何将您的程序弄得一团糟...去年,我讲话并在舞台上醉了,然后,有批评家走近我说:嗨,乔,您的演示文稿很普通,但是演示显然不够!” 因此,今天我的整个演讲将是一个完整的演示,我想知道您可能还不喜欢什么。
因此,“在提高安全性的情况下进行渗透测试的演变”。 我已经在网上摔倒了10年了,它们多么糟糕,它们保持不变。 我不知道您是否有任何经验,但是网络仍然糟透了。 而且应用程序仍然很烂。 现在发生了什么? 现在,我们有5000万个安全产品可以保护您的应用程序,那又如何呢? -糟透了! -然后和他们一起上网,那又是什么? -糟透了! -我们有一堆东西可以保护所有这些糟透了!
那我今天的工作是什么? 我是谁啊 大多数网络人员都知道我,我是安全会议上的黑人,是的,是我,他们通常说的是同一个人:“好吧,这个人,像他...一个有色非洲人...我以前见过他!”
好的,有一段时间我一直忙于入侵网络。 所以,我是饼干,是诅咒,认识我的他也知道我喜欢喝朗姆酒和可口可乐。 但是我的生活发生了变化,我结交了一个新女朋友,她疯了,因为我喝太多了,她真的不喜欢吃东西,这就是为什么我需要旅行,所以我不得不来这里,我不得不吃掉所有这些炖牛肉。 所以请不要告诉她我吃什么和喝什么。
在这张幻灯片上,您可以看到我10年前在DefCon上的第一场表演,然后,还有CRT显示器,有人记得吗?

我与那里的很多人进行了交谈,我们与他们进行了“旗标捕获”。 “夺旗”-真是一次了不起的经历,彻底改变了我的生活,就像耶稣一样,我准备惊呼“哈利路亚!”,那真是太神奇了。
因此,我要为初学者创建“捕获标志”测试。 如果您是初学者,则可能从未参加过“夺旗”活动。 该测试每月有一个培训课程,其中包括研究加密和解密问题,测试网络,测试恶意软件,研究逆向工程问题,使用漏洞利用程序以及其他类似的东西。 这是一个非常扎实而有趣的事件。 简而言之,让我们尝试做类似的事情。
在幻灯片上,您可以看到无线网络的设置,请不要破坏它。 如果要访问称为joe-hacktivity-demo的网络,则可以使用此密码。

这里有一个文本文件,创建它的原因是简单地允许您将信息复制并粘贴到浏览器的地址栏中。 通常人们使用Windows 7之类的工具来执行此操作,但是在这种情况下,您只需要一个Web浏览器即可。 因此,如果您使用的是Firefox,Chrome,则只需打开iPad或笔记本电脑,复制此文本并转到在线书店的网站,即可破解。 我有一个IDS入侵检测系统,我正在运行Snort Box,我们只是要保持该网络的正常运行。 我们将针对拥有此Web应用程序的主机使用一堆Web应用程序,一堆SQL注入,一堆跨站点脚本。 然后,我们在另一个“盒子”中配置了防火墙,以便我带您了解一些ID和防火墙。 我们只是进入那里,进行讨论并在那里做一些有趣的事情。
因此,我需要继续解释还是可以开始? 好吧,让我们开始吧。 我的笔记本电脑中有一个棘手的入侵检测系统。 现在,我将在显示文本文件的屏幕上放大图像。 您可以在浏览器栏中查看其地址,这是我们的文本文件。

我将使用简单的SQL实现跨站点脚本编写,但是如果您想更认真地修改应用程序,则可以检查此文本文件,该文件有两个应用程序。 在ASP.NET平台上开发的2.6版应用程序可验证网络是否正常运行,这是DotNet平台的更新版本,具有跨站点脚本库和几个其他安全性机制,以及用于加载其他安全性库的经过修改的web.config文件。
2.7版的应用程序与上一个相同,但它不仅具有所有DotNet安全功能,而且还具有用于网络应用程序的防火墙。 因此,我想在2.35下“混入”此应用程序,而我将在此进行讨论。

如果您熟悉跨站点脚本和SQL注入的基础知识,那么您将了解2.6、2.5和2.7是什么。 因此,我们有了可以复制和粘贴的文本文件。 让我们讨论一下我在网站地址栏中插入的参数。 这是bookdetail.aspx?Id = 2,问号表示我们需要的ID参数ID为2。实际上,您的Web服务器的接口与Web服务器数据库进行对话以找出其中是否存在条目,与该数据标识符相关的是一个值为2的ID。数据库响应该界面:“是的,伙计,我有您需要的!”

我们现在要做的是检查SQL注入是否对我们有用。 因此,我们将在此处以引号结尾的形式编写一个简单的代码,并看到这导致了错误消息“字符串后的引号”。 当您用引号替换参数或将引号直接用作参数时,这是最常见的测试之一。 这种情况经常发生,也就不足为奇了。

让我们尝试一些不同。 我将参数字符串替换为bookdetail.aspx?Id = 4。 请注意-当我将此4替换为2时,显示的页面会更改,页面顶部的图片也会更改。 现在尝试将两个放在括号中,图片又变了。 如果我在行(4-2)的末尾写,图片将与行2的末尾相同。 如果在方括号(4-1)中书写,则页面的外观与将数字3放在末尾的外观相同,即,将ID与三元组等同。

那么,你们中的哪些人在进行渗透测试时深入研究了这些问题? 您的想法是:“好的,我将SQL代码粘贴到地址栏中,它会将我重定向到主页,现在,我将对其进行更改,它可以将我发送到需要的地方,也可以将我发送到主页。” 实际上,您可以抑制错误消息,而没有ODBS错误消息会使您欣喜若狂,因为您能够注入SQL代码。
我发现出了点问题,但无法解决。 那会发生什么呢? 您的开发人员认为自己最聪明,因为他能够删除错误消息。 但是,当您强迫数据库执行所有这些算术计算时,真正发生了什么?
因此,数据库执行以下计算:(4-1),我们得到第3页。我们只是证明了现在可以进行SQL注入。 因此,您可以回到开发人员那里说:“不,不,不,伙计,尽管没有错误消息,您仍然可以选择SQL注入!” 您只能对其进行一点修复,并且这种情况无时无刻不在发生。
我使用了这种类型的技巧,但是游戏正在发生变化,现在许多人使用诸如Web应用程序防火墙之类的东西。 因此,如果输入以下内容:2或1 in(选择用户)-在地址参数字符串中,由于此数据类型的数据库所有者名称DBO(数据库所有者)的前缀不正确,通常会收到错误消息。 在这种情况下,防火墙会在用户选择的这一阶段陷入陷阱,并说:“不,不,不,我无法做出选择”!

因此,当您看到这种情况时,这意味着,如果您还没有弄清楚是否遇到了Web应用程序防火墙,或者您是否没有执行这些算术技巧,那么仍然有一种很好的方法来找出这种情况下是否存在SQL注入以及是否此Web应用程序是防火墙。
我会告诉你,有一件可怕的事情-需要进行零售连锁渗透测试。 你们当中有人知道英语的意思吗? PCI? 我讨厌PCI,但是我一直从事零售链渗透测试。 PCI是基于2008支付卡行业数据安全标准(PCI DSS)法规的数据安全标准。 “零售网络渗透测试”可让您验证是否符合PCI标准并确定实际威胁。
该标准是无穷的真理:“它们必须……必须……”,并且您必须根据国际身份验证标准使用安全加密标准,然后您便可以这样做……或者可以使用Web应用程序的防火墙。
与我合作的所有用户都做了正确的事情,他们执行了威胁建模,然后他们安排了一个会议,另一个会议,然后又见面并最终确定了一切。 你是这样想的吗? 不! 他们“将卡车交还”,他的停车传感器发出了这种反向信号。 他们只是把问题藏在不可见的壁橱里,然后说:“我们解决了所有问题!”
现在,我将再向您展示一件事,我认为这很有趣。 看这里 到目前为止,我所做的只是实现SQL。 现在,我将执行此操作-选择主数据库的地址,将其复制并粘贴到浏览器的地址栏中。 我们看到,当地址参数字符串中的最后一个参数为0时,第一个数据库称为“ BookApp”。

现在,我将0替换为1,您会看到发生了什么-我们看到第二个数据库称为“ master”。

然后我们将1更改为2,然后看到下一个数据库称为“ tempdb”。

现在救救我! 您能否说我们已经确定了SQL注入? 是的,太好了! 但是问题是我的IDS入侵检测程序中没有任何东西变成红色! 这个东西在屏幕上不是红色的,当我们执行SQL注入时,没有检测到任何威胁!

好的,现在看这里-我必须做错什么。 我不直接从数据库中获取数据库信息,这件事告诉我用红色下划线表示什么?

不,等一下! 我会尝试做不同的事情。 代替数据库编号,让我们使用表上方的行编号,该行被写为“ SQL注入错误-检索1个数据库表”。

我复制此数据并将其粘贴到浏览器的地址栏中。 看看我们现在所拥有的-短语(从xtype = char(85)的主题中选择前1个名称)给出了什么?
正确,是BOOKMASTER主数据库的名称。 我认为这是SQL注入,谁也这么认为? 甚至Stevie Wonder都可以看到这是SQL注入!

但是,让我们在这里-0种威胁! 但这是一个便宜的系统,它有错误,规则尚未更新。

我认为IDS验证规则有些过时,我今天早上下载了它们,它们有些过时了。 也许我在这里出了点问题,我下载了旧的规则,然后又下载了最新的规则,时间不超过3个小时-我不知道。
但是,让我们进一步看。 如果我们尝试复制上面显示“ SQL注入错误-检索2个数据库表”的其他数据该怎么办。

因此,第二个数据库的记录为我们提供了所谓的“系统图”。

也就是说,我们问了一个问题,参数xtype = char(85))和名称'BOOKMASTER'可以显示比BOOKMASTER高的级别的名称吗? 换句话说,系统可以给我后面的表格名称吗? 这就是我们列出数据库的方式-检索数据库名称和表名称后,您会不断询问:“伙计,我能得到一个比我现在正在看的表名称更大的表名称吗?”,然后您只需继续此过程并获取新表的名称即可。
但是,让我们回头看一下我的程序-它再次显示唯一安全威胁的数量为0。我们又遇到了问题!

如果我尝试基于联合的SQL注入,基于联合的SQL怎么办? 在这里,我还有其他几种SQL注入类型,现在我们只插入一行,立即指向ID为100的记录。

结果,我们得到的答案是数字100在有效值范围之外。 因为如果我有10列,我可以选择5列吗? 当然可以! 我可以从10列中选择20列吗? 当然不是! 也就是说,数据库回复:“很抱歉,伙计,但我没有那么多列!” 太好了,然后我将100更改为50,然后她再次写信给我,“ 50超出范围。” 好吧,那25岁呢? 不,25也超出范围。 告诉我还有什么要拨打的电话? 13吗 这是一个不幸的电话号码,但是很好,我们将拨13,而且超出范围。
让我们拿9! 太好了,九个工作了! 这是正确的输入,我需要大于9,但小于限制值,所以让我们玩更多一些以了解表中有多少列。

那么,我们如何确定一个表中有多少列呢? 现在,我们将在地址栏中插入一个从1到9的序列,称为“联合声明”或“联合声明”。该指令将开发人员编写的内容与您自己编写的内容结合在一起。

但是,对于这两个选项,您都需要具有正确的数字数量,以弄清楚列结尾的数字。 我们将执行此技巧-为数字2分配一个负值,也就是说,将其固定在地址栏2中–2。看看发生了什么。

带有书封面的图片消失了,但是所有这些数字都出现了-这是数据库表中的列号。 来吧,告诉我数字! 两个? 好吧,让它成为2。我将序列中的2替换为单词“ user”,现在在页面上出现用户dbo而不是Book name 2。

如果我去第三名怎么办? 我将一起写3号@@版本。 看看我们现在在页面上看到了什么?

好了,伙计们帮帮我! 现在可以说我们有一个SQL注入吗?

还是没有! 安全系统看不到任何SQL注入。
我以IDS入侵检测系统分析师的身份开始了我的安全职业。 那真是可怕的生活,你不得不整天看着包裹被截获,而且可能只不过是婚姻,所以这并没有迫使你把子弹放在脑海里。
我的意思是,我就像其他人一样,整天都在看着这很糟糕,当您开始看到这些流逝的事物时,简直是令人叹为观止,这是疯狂的。
假设我们要做一些有趣的事情。 也许我会把它从这里拿出来,复制并拖到这里。 因此,我在地址栏中插入数据库版本,服务器名称,然后输入master.sys.fn_varbintohexstr(password_hash)-没什么有趣的,对吧?

现在,我们在页面上获得了此类数据,我认为最上面的一行对我们很有用。

重要的是,我们可以发现IDS是我们可以使用的好东西! 那谁跟我在一起? 紧急运行并购买其中一个程序!
屏幕显示该程序再次未检测到任何SQL注入。

这只是一个很棒的程序,它比我们想象的还要好,因为它可以编译所有这些无用的用户日志,而且从来没有人看过,这很酷! 好吧,假设我们毕竟做了一些有趣的事情。 我们使用以下参数:1 = 1、1 = 2和1 * 1。 一等于一吗? 是的 一等于二吗? 不,不相等。 但是,我们需要做的是检查我们想说的正确页面上的更改是否为“枚举”。

我将第一行的参数1 = 1复制并粘贴到地址栏中,查看页面,然后将此表达式更改为1 = 2。 如果页面以某种“不诚实”的方式更改(如您所见,它确实发生了更改),则基于此,从编程的角度来看,我可以得出结论认为存在SQL注入。 因为如果我使用1 = 1和1 = 2,那么我可以这样处理:“好吧,如果我使用用户名dbo和1 = 1,则根据说明,如果用户名是dbo且1 = 1,那么我们得到正确的页面,因此我知道用户名确实是dbo。” 清楚吗? 好吧,再次查看IDS标签-没有威胁! 我说这是一个了不起的产品。
现在,让我们做一件有趣的事情。考虑这些值。一减一?显然,还有更多。但是后来出现了我真正喜欢的东西。该表达式是“ 1小于1”。
我再说一遍-这些只是提出相同问题的不同方式。谁有孩子,您知道他们如何提问。“我可以吃这些饼干吗?” -不,你不能!-也许我可以拿这些芯片?-不,没有饼干!“那也许这些奥利奥人可以吗?”我知道这一点,我经历了那件事。25:50分钟,HACKTIVITY 2012会议,“大爆炸理论:增强安全性中的渗透测试”。 第二部分一点广告:)
, . ? ? , ,
VPS $4.99 ,
entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).
Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! 戴尔R420-2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB-$ 99起!阅读有关如何构建基础架构大厦的信息。使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?