分享

如何寻找国外网站注入漏洞或1 = 1

 隐者黑鹰88 2016-09-02

最好的黑客用自己的创意找到漏洞。他们没有约束的漏洞类型,他们已经知道如何找到。这往往是指一个黑客链在一起看似很小的漏洞变成大。这篇文章会给你关于如何注入漏洞的工作更多的见解,以及你可以如何利用知识发现更多的错误。


注入漏洞来自不消毒或完全unsanitized输入。为了证明这些类型的漏洞,这篇文章将集中在一个著名的漏洞类型:SQL注入。当一个黑客利用SQL注入,注入任意SQL命令来提取数据,读取文件,甚至把它升级到一个远程执行代码(RCE)。

当你测试注入漏洞的应用程序,你应该注意你的输入和结果如何,无论你是在响应中返回。这听起来很模糊,所以让我们给你一个例子。想象一下,一个网页,需要数字ID是一个参数。你可以开始打探它提交非数字值。关注服务器如何响应。有没有错误?如果是这样,什么样的错误?没有错误显示一些关于建筑,还是发现有严格的数值验证的参数?有什么指示可能导致注入漏洞?在第一个异常检测的重点,然后找出如何利用它。收集尽可能多的信息,并尝试许多不同的方法来了解如何在页面代码工作。如果不立即工作,把它记到回来以后。

让我们深入对SQL注入来帮助你理解注入漏洞都是关于。对于这个概念的缘故,假装我们建立了一个应用程序称为“名API”。它需要一个MySQL服务器,其中一个PHP脚本连接。只有一个数据库中的表,这是所谓的“名字”。由于一些未知的原因,它跟踪一个人的名字和IP地址。IP地址是保密的,不应该被公开的互联网。应用程序已被部署到Internet可访问HTTPS:/ /名称API。和表的内容结构看起来像这样:

7e98984270ce5d905638b3be4e1df69588a6bf07_original.png

应用程序的index.php的内容看起来像这样:

<?PHP

/ /连接到本地主机无密码的根,幸运的是,3306是防火墙…
连接= mysql_connect美元(“localhost”,“根”,“”);
mysql_select_db(合连接,“names_api”);

/ /拿记录表,但由于用户的IP地址是秘密,
/ /让我们只能选择名黑客将永远无法看到这!
为查询= mysql_query(“选择的名字从名字id是_get美元[ 'id' ]”);

//确保记录被发现
如果(mysql_num_rows($查询)= = 1){
对象= mysql_fetch_assoc美元($查询);

//返回给用户的名称
echo $对象[ 'name' ];
}
如果用户可以访问HTTPS:/ /名称API /?ID = 1,服务器会回应“大餐”。你有没有发现漏洞了吗?如果你看到代码很简单。当一个用户要正确使用该应用程序,它会通过ID到页面的ID参数。它会查找数据库中的记录,并归还属于记录的名称。但如果你想进入“和”的ID,如https:///?ID =,,查询会执行这个样子:


选择名称和id是


如果你熟悉MySQL,你可以猜到发生了什么:这不是一个有效的SQL查询,因为“和”是SQL中的保留关键字。让我们看看我们是否能证明这里的SQL注入。我们知道,如果我们去HTTPS:/ /名称API /?ID = 1,叫“饭”,返回。现在,如果你想去HTTPS:/ /名称API /?ID = 1 + 1 = 1,页面仍然会返回“大餐”。查询是在后台执行,看起来像这样:


选择的ID = 1和1 = 1


此查询大致翻译:给我有列ID 1和1等于1行的名称列。这意味着,ID为1的行返回自1总是等于1,因此可以忽略不计,这将导致“餐”记录被返回。如果你现在就去HTTPS:/ /名称API /?ID = 1 + 1 = 0下面的查询将被执行:


选择的名字从姓名ID = 1和1 = 0


你可能已经猜到这个地方去。此查询大致翻译:给我有列ID 1和1等于0行的名称列。让我们看看最后一部分:1 = 0。这永远不成立,这意味着不会有任何返回的行。期。这证明了我们可以更改查询的行为。这已经是一个很好的发现,但这是异常。让我们深入一点,看看我们能不能从表中提取秘密IP地址:欢迎光临联盟!工会基本上是一个额外的查询结果追加到查询结果的前。给你的感觉是什么样子,这是一个联盟的SELECT语句和SQL查询的结果:


选择ID,从名字id是1联盟选择ID的名字,名字从名字id是2


第一个SQL查询,选择ID,从名字id是1名,导致在第一排:餐。第二查询,选择ID,从名字id是2名,导致第二行:fransrosen。让我们看看我们是否可以注入联盟选择到命名的API应用程序:HTTPS:/ /名称API /?ID = 1 +协会+选择+姓名+姓名+,+ + ID = 2。请求这个页面的结果在SQL查询上面这段和2列的结果。然而,由于代码只读取第一行,“餐”返回。让我们做一个小小的改变:不是取ID 1为第一次查询,取一个编号,表中不存在。请求HTTPS:/ /命名API /?ID = 1 +协会+选择+姓名+ from_names + + ID = 2将“fransrosen“因为查询的第一部分将不会返回任何结果。现在,这并不显得非常糟糕,因为我们从表中看到,可无论如何选择其他记录。然而,这是很有趣的部分:你可以使用子查询从表中提取数据的秘密。考虑下面的URL:HTTPS:/ /命名API /?ID = 1 +协会+选择+ 0,(选择+ + +姓名+ ip_address + ID = 1)。这将执行以下查询:


选择ID,从名字id是1会选择0名,(选择ip_address从名称ID = 1)


子查询将返回一个非坚持设置为0的ID记录,和名称列设置为子查询的结果(选择ip_address从名称ID = 1),将包含秘密的IP地址存储在数据库中。获取URL的结果”1.3.3.7”是由服务器返回的。
download.jpg
有一些伟大的互联网上的资源来进一步说明如何利用SQL注入。退房这篇文章你可以学习如何写文件到磁盘,这可能导致远程代码执行。需要一个漂亮的小骗子么?退房这篇文章。有很多的技巧,你可以使用利用SQL注入。例如,一个漂亮的小把戏,把一个SQL注入跨站脚本(XSS):看看这个网址。这是你如何发现这段代码执行的JavaScript警告功能有消息。需要提示吗?读这篇文章。祝你好运!

注入漏洞有关,这是非常公开的例子中发现一个JavaScript注入松弛的Mac OS X协议处理程序。该漏洞允许攻击者执行任意JavaScript当受害者点击一个特制的链接。这个概念表明,攻击者可以使用JavaScript后对受害人短信代。这是一个很好的例子,因为注射一样,这是很常见的,但他们是所有的地方,等待着人们去发现它们。

下一次,也许今天晚些时候,当你的黑客,记住创意并尝试理解应用程序在寻找注入漏洞。密切关注并预测服务器如何响应。当你认为你是对的东西,一定要利用这个漏洞之前,报告一个错误赏金计划。如果你不能证明一个安全漏洞的存在,回来以后再看看。如果你正在寻找更多的指导,在写好的报告,检查这博客。
来源:asp木马 转载注明出处!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多