常见攻击步骤

1.sql注入篇

1.1 选择用于测试的参数

  • url查询
  • post正文
  • 头部
  • cookie

1.2 如果测试字段为整数,尝试数学运算

id=1941-1

如果有sql注入的迹象,那将会有id=1940的结果

1.3 参数末尾添加符号

  • 单引号‘
  • 双引号“
  • 分号;

如果出现了错误的响应,可能存在sql注入

1.4 尝试闭合

如果 id=13 正常

id=13'不正常

再来一个 单引号闭合id=13''正常

1.5 sql查询

整形:

id=1234 and 1=1 正常

id=1234 and 2=1 错误

字符型:

id=ad’ and ‘a’=’a 正常

id=ad’ and ‘a’=’b 不正常

json:

{“id”:”1234 and 1=1”} 正常

1.6 配合注释

id=1234 and 1=1 --+ 或者 #

1.7 使用工具进一步测试脆弱的参数

  • sqlmap

  • github

网站

sql注入例子测试

防范

前端:

  • 有效性检验
  • 限制字符串输入的长度

服务端

  • 不拼接sql字符串
  • 使用预编译的PrepareStatement
  • 有效性检验(不信任前端,放攻击者绕过)
  • 过滤sql需要的参数的特殊字符

2.xss

阻止与绕过

1.限制载荷的长度

攻击者构造限制长度内的 载荷

2.禁用事件处理程序

比如onload、onerror、onclick等

攻击者使用禁用之外的 比如 onchange、onmouseover

3.屏蔽一些标签

比如<script>、<iframe>啊

攻击者使用其他标签,比如<img>

4.禁用弹出函数

比如 alert、confirm

攻击者用创新方法

5.禁用尖括号<>

阻止<这个字符

攻击者通过编码绕过

6.禁用括号()

攻击者的替代脚本检测不到吧

实例

xss-wp

一个xss的过程1

作者已经发现了一处反射型xss。

参数为name:

1
example.com/profile?name=<img+src=1+onerror=alert(1337)>

通过开发者选项呢,在所有js文件中去搜索 /profile,期望找到另一个易受攻击的参数。

1
example.com/services

他的第一想法是将这个url去谷歌搜索一下,看这个终端点是否使用了参数缓存在谷歌网络空间的某处。

ps:终端点:一个API的特定URL或路由,而参数则是传递给该终端点的额外数据

谷歌搜索结果如下:

1
example.com/services?id=123&page=Demo

攻击者添加有效载荷如下

1
example.com/services?id=123qwe'"<X</

其目的是为了检查源网页代码中的某处是否反应了什么内容

同时,打开开发者工具中的网络选项,检查该端点可能发送到某处的所有请求

作者再次刷新谷歌搜索,发现了一个使用了JSONP回调参数的ajax请求

1
lib.com/find?id=123qwe&jsonp=cb12

ps:

AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,通过后台异步请求数据并更新页面的技术。它允许您在不中断用户浏览体验的情况下,从服务器获取数据或将数据发送到服务器。通常,AJAX请求返回的数据格式可以是XML、JSON、HTML或其他格式,而不仅仅是XML,尽管在命名上仍然保留了”XML”。

JSONP(JSON with Padding) :由于同源策略限制跨域请求,JSONP是一种绕过这个限制的技术,它利用了动态创建 <script> 元素的能力来加载跨域脚本,并在响应中包含一个回调函数,使得数据可以传递回调函数中。JSONP请求的URL通常包含一个回调参数来指定回调函数的名称。

作者尝试了一下,

  1. 将jsonp值赋值为 **alert(1337)**,由于该网站没有检查jsonp值选项,所以这个尝试是通过了。
  2. 作者尝试id参数是否接收其它符号,比如 %这个是为了组成编码,比如%23这种形成 #
1
example.com/services?id=1%26jsonp=alert(1337);%23

实际上的效果如下:%26被识别为&,%23识别为#

1
lib.com/find?id=1&jsonp=alert(1337);#&jsonp=cb12

该参数污染攻击触发了alert,证实了dom xss的存在

漏洞狩猎

初步

打开两个浏览器,从BAC(损坏的访问控制)漏洞开始,创建两个用户,(一个基本用户和第二个管理员)

该漏洞使得基本用户可以执行管理操作。

其中一些漏洞可以使用指向部分/端点的直接链接找到,但其他漏洞将要求您修改发送到浏览器的请求(burpsuite,插件Logger++)

在测试网站或应用程序是否存在BAC错误时,

可以突出显示对关键操作的所有 GET 请求,如/delete_user?id=1

可以直接发送给用户的具有关键操作(例如删除用户)的请求将被视为CSRF(跨站请求伪造)漏洞

POST 请求也可用于执行 CSRF 攻击,但通常具有 CSRF 保护机制(例如csrf_tokensreferrer检查)

CSRF 保护有时可以被绕过。尝试将 POST 方法切换为 GET 或从密钥中删除令牌值 —csrf_token=

如果有refferer(引荐来源网址保护),可以尝试去添加domain到refferer,如

1
http://example.com.yourdomain.com

如果检查域名应位于refferer末尾,则

1
http://yourdomain.com/site.com

xss

该作者特别中意xss

如果对输入,放入这样的基本payload, qwe'"<X</,并且注意网站上的文本反射,看到某个地方出现 qwe(没有尖括号)时,可能有XSS

同时呢,注意去页面的源代码中查找qwe这个文本(使用开发者工具的search)

有效负载出现的地方:

  • 标签参数中
1
<span>qwe'"<x</span>
  • 标签属性中
1
<a class="qwe'"<x</">
  • 标签事件属性中位置的位置更改逻辑
1
<a onclick="location.href='qwe'">

可以用javascript协议

1
location.href='javascript:alert(1)'
  • <script>标签
1
<script>let a = "qwe'"<x</"<script>

关注点

注册后,看看是否可以:

  • 创建具有不同角色的新用户
  • 上传任何文档
  • 将某些内容导出为 PDF
  • 或使用 Webhooks 调用外部服务

作为普通用户时,思考:

  • 如果普通用户可以访问此管理部分会发生什么?
  • 非管理员用户可以查看此秘密文档吗?
  • 用户是否可以上传非基本文档类型,例如 PHP 应用程序中的 PHP 文件?
  • 是否可以将 HTML 标签插入导出的 PDF,如果可以,是否可以使用 <iframe> 标签读取内部文件?
  • 创建新的 Webhook 时是否可以调用 localhost,甚至 AWS 元数据地址?
  • 该应用程序是否需要旧密码才能更改密码或电子邮件,如果不需要,那么是否有可能在某个地方找到 XSS 来实现完整的 ATO(帐户接管)?
  • 什么样的堆栈应用程序是用什么构建的,版本是什么,PoC 是否存在任何漏洞/CVE?
  • URL 参数或 POST 正文中是否有任何文件路径可以测试 LFI(本地文件包含)漏洞?
  • 是否有任何高级订阅计划可以带来好处,这些好处可以使用普通用户而不需要订阅来实现吗?

来源

medium的Anton

渗透

以Weblogic为例

资产收集1

资产

1.一个网站可以有多个应用程序(IIS部署时,要把子目录转化为应用程序的)

即example.com 是网页A,

example.com/abc 程序B,

example.com:1234 程序C

喏,只要其中一个程序有bug,那就可以尝试了

2.二级域名

a.example.com

b.example.com

目标a网站我弄不了,我先看b

3.第三方插件的漏洞安全,比如有phpmyadim,弱口令怎么办,默认密码怎么办

4.服务器的多个应用 如ftp

阻碍

站库分离

CDN:给你一个距离最近的节点(缓存了你想访问的内容)供你访问

该服务本质是访问加速

对就近节点的访问

比如主站ip位置在A点,该ip呢,B点也有,C点也有,每个点的ip都一样,那它就没有CDN服务

开CDN的话,会根据不同位置的请求解析到不同的节点(访问加速)上去,这样也减轻了主机的负担。

CDN就是,就是孙悟空的猴毛,变化成了很多假孙悟空,它们遍布各地,确保用户就近访问,但是如果假猴被攻击,对真猴没影响

超级ping找真实ip

负载均衡:多个用户要访问同一个服务,一台服务器(主机)搞不定,多来几台服务器(备用机),都有这种服务,缓解主机压力

kali有个lbd工具,识别

广域网负载均衡,原理是DNS轮询,访问一个域名时,同一个域名可以解析成多个ip地址上

服务器负责均衡,用设备或者nginx、apache自带的负载均衡

负载均衡设备通过转发把用户的请求发到真正的后端服务器

WAF应用防火墙:软件防火墙(安全狗,D盾)

Wafw00f工具识别防火墙

主机防护防火墙:杀软

资产收集2

web架构:开发语言&中间件&数据库&系统

常见组合推算即可;文件后缀看语言;返回数据包和端口扫描看中间件;

TTL和大小写敏感判断系统

web源码:CMS开源

web域名:子域名/反查域名/旁注

旁注:同服务器下的不同WEB应用查询技术

比如对171.x.x.x 进行旁注

www.123 .com 是目标,没头绪

看下面的

www.456. com

www.993. com

总结,该ip下面有三个站点

cms识别不到时,采用方法如下:

.git源码泄露: Git,一个开源的分布式版本控制系统,比如写博客的时候,用git帮忙进行push,git初始化的时候会在当前目录创建一个 .git目录,记录代码的变更记录;发布代码时,要记得删除该目录,否则会被攻击者利用

当url访问 /.git/目录,出现403时,说明存在,那利用脚本文件还是可以实现下载的

.svn源码泄露:同.git

/.svn/entries ,脚本文件可进行下载

DS_Store文件泄露: Mac下Finder保存展示文件/文件夹的数据文件

/.DS_Store,脚本文件进行下载

Composer.json泄露:有网站框架信息,cms信息等

/composer.json

WEB-INF泄露:java的WEB应用的安全目录,必须通过web.xml文件对要访问的文件进行映射才能访问(这个一般是CTF了)

WEB-INF/web.xml,Web应用程序配置文件

WEB-INF/classes/:存放Java类文件

WEB-INF/src/:存放源代码

通过web.xml,找到class文件的路径,找到class文件,反编译class文件,得到网站源码

github语法搜索

google语法搜索

f12,代码的注释信息

网络架构:外网搭建、内网搭建

有时对一个公网ip怎么扫端口,都无法扫到,但可以访问其服务;考虑是该服务器做了反向代理,用内网搭建,但是端口转发到了外网。所以扫外网没用

内网资产:C段扫描

同网段下的不同服务器IP下的WEB应用查询技术

171.x.x.x

www.123. com或其它应用无头绪

看171.x.x.1-255涉及的所有协议服务

总结,该网段下的多个ip

空间搜索引擎利用

  • shodan
  • fofa
  • quake
  • 钟馗之眼
  • google hacking(inurl:漏洞地址)

比如搜索Weblogic

进入fofa 搜索 app="BEA-Weblogic-Server"

google: inurl:example/ws/wslt/index.jsp

总结

如果获得了一个域名,先进行CDN判断,有CDN就想办法去获取真实的ip,再进行测试。

之后的测试点包括但不限于 端口扫描目录爆破子域名爆破

fofa那些搜索的是什么?

关联资产、特征资产、资产信息

关联资产,我输入域名,给了我ip等信息,端口有哪些

特征资产,我搜log4j,给我一些应用log4j的ip,这种一般是找通用漏洞很好, app="BEA-Weblogic-Server"这就是找通用漏洞

批量扫描脚本

漏洞库:

佩奇漏洞文库

白阁漏洞文库

工具:

fofax/fofa_viewr

httpx

去漏洞库获取对应语句

去fofa搜索对应的资产

fofax/fofa_viewr将目标网站收集起来

httpx筛选出存活的url

1
httpx.exe -timeout 15 -l fanwei.txt -o result.txt -mc 200

自动化信息收集

kunyu、ARL灯塔、水泽

指纹识别: ENScan

知识补充

反向代理和正向代理

正向代理:“好兄弟,我访问不了目标网站,你帮我去访问吧”。

即客户端的代理

pc->代理服务器->目标机

目标机不知道真实的用户ip

这个和找房子同理,租客一般不能直接找到 房东,但可以通过 中介 找到 房东

好处:

突破客户端ip访问限制

隐藏用户ip

提高访问速度,代理服务器很较大的硬盘缓冲区,将部分请求的响应保存其中,有用户访问,就直接取出来

反向代理:“好兄弟,你就是目标机?!”

即,目标机的代理

pc->反向代理服务器->目标机(隐藏)

这个代理不是用户使用的,而是服务器使用的,所以pc会认为它就是在访问目标机,

即,用户不知道真实的目标机

房东 不卖房子,但是 二房东 对外出租房东的房子, 租客 直接面向 二房东二房东再去找 房东

好处:

隐藏服务器ip

负载均衡,目标机很忙, 就去请求有相同服务的备用机

安全保障:可作为应用层防火墙

提高访问速度,代理服务器提前缓存短时间内访问频繁的动态内容

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信