url重写安全吗_安全漏洞让任何人“重写直布罗陀”的法律

url重写安全吗

使用SQL注入“重写英国海外领土直布罗陀的法律”

注意:在发布本文时,网站的易受攻击部分已被关闭,有效地解决了该漏洞。 特别   感谢The Register的 Gareth Corfield协调负责任的披露工作。

我需要回答:“英国居民需要签证才能访问直布罗陀吗?”这就是为什么我偶然发现直布罗陀边境与海岸警卫队网站的原因。 作为英国的海外领土, 直布罗陀下降的排序英国的管辖之下,但拥有自己的政府和法律所以这是一个有点混乱。 我打算在晚上11点左右澄清一下-并保证有一个良好的晚安睡眠。 我几乎没有意识到这将变成漫长的探索之夜。

边境和海岸警卫队代理机构网站上有与《 直布罗陀移民法》的链接  看起来像:
http://www.gibraltarlaws.gov.gi/edit_article_o.php?group_id=000000062

直布罗陀边境和海岸警卫队法律和政策页面

对于普通的互联网用户而言,这并不意味着什么,但是当HM直布罗陀政府法律和立法网站的首页显示如下时,技术人员就会感到可疑。 请注意底部的安全站点徽标,因为这将变得很有趣!

单击上面提到的出站链接时可以预见到根据《 直布罗陀移民法》显示的法律和修正案的PDF文件是可预测的:

SQL注入和数据库转储

但是,过时的网站似乎可能是   脆弱的东西在URL末尾仅添加一个简单字符—单引号: ' (当编码时变成%27确实证实了我的怀疑。 该网站容易受到最简单的SQL注入:基于错误的攻击。
http://www.gibraltarlaws.gov.gi/edit_article_o.php?group_id=000000062%27

链接的输出加上单引号:

与前几页显示法律和修正案PDF链接的页面不同,除了链接末尾带有''的页面标题外,什么都没有出现,因此乍一看。 由于“ URL错误”,即404(未找到)页面,这可能只是一个错误。 但是,在选择并突出显示整个页面时,黑色文字突然变得可见!

Error in query: SELECT * FROM `article` WHERE group_id='000000062'' AND category='c'. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c'' at line 1

这是一条正确MySQL错误消息,说明了表名(即article以及随后的字段),从而为攻击者提供了相应的机会,可以据此精心制作恶意输入。

用外行的术语来说,对于那些不熟悉的人来说, SQL Injection攻击是与提供这种用户输入的攻击者打交道的,例如用户名或密码 ,它欺骗数据库引擎处理该值,将输入作为对数据库的命令处理,例如与单纯的数据值相反。 因此,例如,通常的用户名michael   通常将由数据库引擎作为值处理。 替代用户名(例如michael'--而提供的精心设计的输入可能会导致易受攻击的系统让攻击者无需密码即可访问用户(迈克尔)的帐户。

在这一点上,很明显,该网站遭受了基于错误SQL注入-不是在一个地方,而是在许多地方。 同样,将group_id参数更改为0或无效值将转储所有PDF:

可以注意到此有趣缺陷的另一个地方是“ 就业法庭判决”部分,根据该页面, “其中包含可追溯到1999年的直布罗陀就业法庭通过的判决,裁定和决定。”

在网页上仅搜索单引号( ' )或带有单引号的名称(例如Derick O'Brian),将导致相当冗长SQL错误消息:

Error in query: SELECT * FROM industrial_tribunal_judgement WHERE itj_title LIKE '%'%' OR itj_case_number LIKE '%'%' OR itj_keywords LIKE '%\'%' AND itj_keywords LIKE '%%' AND itj_keywords LIKE '%%' AND itj_keywords LIKE '%%' AND itj_keywords LIKE '%%' AND (itj_tribunal = 'dummy' OR itj_tribunal = 't' OR itj_tribunal = 'a') AND (itj_type = 'dummy' OR itj_type = 'j' OR itj_type = 'd' OR itj_type = 'r') ORDER BY itj_date_passed DESC. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%' OR itj_case_number LIKE '%'%' OR itj_keywords LIKE '%\'%' AND itj_keywords LI' at line 1

使用简单的渗透测试和分析工具(例如sqlmap),可以很容易地进一步了解易受攻击的服务器的所有数据库所包含的内容。 使用./sqlmap.py -u <URL> --schema类的命令进行的简单测试足以列出MySQL实例中包含的所有数据库和表。

其中,其他所有内容似乎都是包含常规信息的基线information_schema SQL表,或者是包含有关法律,修正案等面向公众的信息的直布罗陀法律网站自定义表。其中最有趣的表是user

使用sqlmap -t命令进一步分析user表后,该表显示: 工作人员姓名,用户名,密码摘要(哈希),帐户注册时使用的IP地址以及其他信息。 这是关于可能管理网站内容的工作人员的信息,这些工作人员具有足够的特权来编辑或删除网站上的任何条款,法律,修正案和所附文件,包括可追溯至1887年的立法法规,2020年。

密码分析和破解

sqlmap和其他工具具有内置选项,可以进一步分析表并在脱机状态下对字典中的某些密码摘要进行基于字典的快速“猜测”。 对摘要的快速分析显示,其中一个密码非常脆弱-仅有6位数字的日期组合(可能是生日或周年纪念日)。 尽管密码摘要存储在表中,而不是实际的纯文本密码,但密码在不到一秒钟的时间内就很容易显示出来 毕竟, 即使是一台普通的计算机,每秒也能很好地猜测10万多个猜测 ,而破解6位数的密码将是小菜一碟。

一旦攻击者获得了用户名和密码,他们就可以使用网站的CMS 修改删除任何内容,包括法律。

每个页面上不太精细的Modify | Delete链接使这成为可能:

在修改或删除内容之前显示的示例登录屏幕:

am! 成功登录后,攻击者可以“重写任何法律”,删除或上传新的​​PDF并篡改其他数据。 是的,我不会尝试删除,但是我敢肯定它可以工作:

尽管可以说, 这是漏洞利用的第二步,即密码分析和破解令人印象深刻,但SQL Injection漏洞本身的关键性质意味着没有必要。 攻击者仅凭恶意输入(例如精心制作的查询)就可以修改,删除或篡改任何表和数据库信息。 使用更复杂SQL Injection有效负载,甚至可以潜在地实现反向Shell访问

因此,下次选择在底部放置“ 安全站点”徽标时,请确保您已覆盖最常见的严重漏洞。 ;)

给直布罗陀HM政府工作人员的道具。 不仅在报告的一周内解决了该漏洞-在漫长的假期后, 同一天就启动了一个新的网站来替代以前的网站 。 看起来不漂亮吗?

直布罗陀法律网站于2020年1月6日启动:

© 2020。Akshay'Ax'SharmaTwitter )。 版权所有。

翻译自: https://hackernoon.com/a-security-vulnerability-let-anyone-rewrite-the-laws-of-gibraltar-x35636e7

url重写安全吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值