php网站渗透数据库 如何渗透php网站获取源码

如何进行渗透测试才有可能登录到数据库服务器的远程终端新建一个文本文件php网站渗透数据库,更改扩展名为aabb.udl双击此文件php网站渗透数据库,选数据库类型、设置ip、用户名、密码php网站渗透数据库,数据库可进行连接测试 ,当然对方要开sql服务php网站渗透数据库的测试成功后,点确定将这个文件以文本方式打开,里面有连接字符串,装sql 查询分析器 。
PHP网站怎么连接到数据库?常规方式
常规方式就是按部就班的读取文件了 。其余的话和上述方案一致 。
// 读取配置文件内容
$handle = fopen("filepath", "r");$content = fread($handle, filesize("filepath"));123
PHP解析XML
上述两种读取文件,其实都是为了PHP解析XML来做准备的 。关于PHP解析XML的方式的博客有很多 。方式也有很多,像simplexml,XMLReader,DOM啦等等 。但是对于比较小型的xml配置文件,simplexml就足够了 。
配置文件
?xml version="1.0" encoding="UTF-8" ?mysql
!-- 为防止出现意外 , 请按照此标准顺序书写.其实也无所谓了 --
hostlocalhost/host
userroot/user
password123456/password
dbtest/db
port3306/port/mysql12345678910
解析
?php/**
* 作为解析XML配置文件必备工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml";public static function getDBConfiguration() {
$dbconfig = array ();try {// 读取配置文件内容
$handle = fopen(self::$dbconfigpath, "r");$content = fread($handle, filesize(self::$dbconfigpath));// 获取xml文档根节点,进而获取相关的数据库信息
$mysql = simplexml_load_string($content);// 将获取到的xml节点信息赋值给关联数组,方便接下来的方法调用
$dbconfig['host'] = $mysql-host;$dbconfig['user'] = $mysql-user;$dbconfig['password'] = $mysql-password;$dbconfig['db'] = $mysql-db;$dbconfig['port'] = $mysql-port;// 将配置信息以关联数组的形式返回
return $dbconfig;
} catch ( Exception $e ) {throw new RuntimeException ( "mark读取数据库配置文件信息出错!/markbr /" );
}return $dbconfig;
}
}1234567891011121314151617181920212223242526272829
数据库连接池
对于PHP程序而言,优化永无止境 。而数据库连接池就在一定程度上起到了优化的作用 。其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源 。而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上 , 都是一个大大的提升 。
于是,这里简单的模拟了一下数据库连接池的实现 。核心在于维护一个“池” 。
从池子中取,用毕,归还给池子 。
?php/**x
*PHP中的数据库 工具类设计
*郭璞
*2016年12月23日
*
**/class DbHelper {private $dbconfig;private $dbpool;public $poolsize;public function __construct($poolsize = 20) {if (! file_exists ( "./utils.php" )) {throw new RuntimeException ( "markutils.php文件丢失,无法进行配置文件的初始化操作!/markbr /" );
}else {
require './utils.php';
}// 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration ();// 准备好数据库连接池“伪队列”
$this-poolsize = $poolsize;
$this-dbpool = array ();for($index = 1; $index = $this-poolsize; $index) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark连接数据库失败!/markbr /" );
array_push ( $this-dbpool, $conn );
}
}/**
* 从数据库连接池中获取一个数据库链接资源
*
* @throws ErrorException
* @return mixed
*/
public function getConn() {if (count ( $this-dbpool ) = 0) {throw new ErrorException ( "mark数据库连接池中已无链接资源,请稍后重试!/mark" );
} else {return array_pop ( $this-dbpool );
}
}/**
* 将用完的数据库链接资源放回到数据库连接池
*
* @param unknown $conn
* @throws ErrorException
*/
public function release($conn) {if (count ( $this-dbpool ) = $this-poolsize) {throw new ErrorException ( "mark数据库连接池已满/markbr /" );
} else {
array_push ( $this-dbpool, $conn );
}
}
}
请问这样怎么渗透注入跟php版本没有关系 , 跟代码是对传入数据是否过滤完全有关 。你这个页面 , 没有办法对参数控制的,注入不了 。
Web渗透是怎么弄的?1.渗透目标
渗透网站(这里指定为)
切记,在渗透之前要签订协议 。
2.信息收集
建议手动检查和扫描器选择同时进行 。
2.1 网站常规检测(手动)
1:浏览
1.初步确定网站的类型:例如银行,医院,政府等 。
2.查看网站功能模,比如是否有论坛,邮箱等 。
3.重点记录网站所有的输入点(与数据库交互的页面),比如用户登录,用户注册,留言板等 。4.重点查看网站是否用到了一些通用的模板,比如论坛选择了动网(dvbss) , 就有可能存在动网的漏洞;邮箱有可能选择通用的邮箱系统 , 也有漏洞 。
2: 分析网站的url1.利用搜索引擎,搜索网站的url,快速找到网站的动态页面 。
2.对网站的域名进行反查,查看IP,确定服务器上的域名数,如果主页面url检测没有漏洞,可以对其他的域名进行检测 。
3:审查代码
重点对输入代码(比如表单)进行分析,看如何来提交输入,客户端做了哪些输入的限制方法 。
1.隐藏表单字段 hidden
2.Username,Password等
4:控件分析
Active x 通常都是用c/c编写
在页面上(通常是首页)的源码中搜索
1. 需要ComRaider OD 对dll文件进行反编译 , 看是否有漏洞 。
2. 改变程序执行的路径,破坏Active X 实施的输入确认,看web的回应 。
5:对常规的输入进行手动注入测试,测试是否有sql注入和跨站漏洞,试用常规的用户名和密码登录 。
6:查看web服务器的版本 , 确定搜索是否有低版本服务器组件和框架的漏洞,比如通用的Java框架Struct2的漏洞 。
2.2 工具选择和使用
1:web应用程序漏洞扫描工具
Appscan: (版本7.8)
扫描漏洞比较全,中文 , 漏洞利用率高,检测速度慢 , 需要大量内存,重点推荐 。
AWVS:
英文 , 漏洞库完善,检测速度慢 。
JSky
中文,检测速度快,但深度一般 。
Nessus
英文,检测速度较快,漏洞也比较完善,免费,可及时更新,B/S界面 。
2:端口扫描
Nmap
流光
3: 口令破解工具
溯雪
4:sql 注入工具
Asp SqlServe, ACCESS:啊D注入工具
Php MySQL : php mysql注入工具(暗组的hacker栏中)
Jsp ORACAL: CnsaferSI
支持以上数据库 Pangolin
5: http代理请求
Paros
6:木马
灰鸽子
7:提权木马
一句话木马大马(具体所用的木马参考文档和工具包(绿盟,暗组))
5: 工具推荐使用方案
Appscan扫描出的重大漏洞,进行手工检测(注意看漏洞是如何发现的,修改漏洞的代码,对渗透帮助很大) 。
sql注入漏洞
可以选用根据网站类型选择sql注入工具
如果是post请求类型的url,选择使用paros代理后,修改http请求包,进行注入 。
WebDEV漏洞
可以启用发送请求(比如DELETE对方网页)
跨站漏洞
直接将appscan的代码输入测试,成功后 , 可以尝试跨其他脚本(比如
遍历漏洞:
网页的目录,下载网站配置文件信息 , 和源文件进行反编译
反编译:
Class 可以选用java 反编译工具
Dll (asp.net) 选用Reflector
3.分析并渗透
---------------------
作者:centos2015
来源:CSDN
原文:
版权声明:本文为博主原创文章,转载请附上博文链接!
伪静态php网站该如何注入渗透 , 求大神告知,解答下thinkphp漏洞还是蛮多的~ 首先你要知道thinkphp的运行方法而不是盲目的去注入
比如Home/Login/index.html
Home/Login/index/ID/1
如何从网站主页破解进入数据库服务器方法/步骤
1 我们首先要在网站源码里面找到 , php数据库的用户名和密码,还有ip地址,才能连接数据库服务器 , 一般数据库信息文件,在首页里面都是有包含的,就拿dedecms来说 , 打开首页,会看到if(!file_exists(dirname(__FILE__).'/data/common.inc.php')) 。
2 我们就找data目录下的common.inc.php文件,就会看到数据库连接信息 。
3 dbhost就是ip地址,这个是数据库的IP地址,dbname 就是数据库名字 , dbuser就是数据库的用户名,dbpwd就是数据库的密码,然后打开我们要用到的mysql数据库连接软件Navicat for MySQL 。
4 依次 文件--新建连接,然后出现连接信息,连接名随便写,ip地址就写你要连接的服务器的ip地址 , 端口不变3306,如果有改变就写设置的端口就可以,用户名就写刚刚得到的用户名 , 密码就写密码 。然后连接就行 。
5 我只是给大家拿dede一个演示,这样就可以了,如果其他的网站 , 根据源码的不同 , 数据库信息所在的文件也有所不同 , 一般都在conn.php,config.php,common.php,inc.php里面找就行了 。
【php网站渗透数据库 如何渗透php网站获取源码】关于php网站渗透数据库和如何渗透php网站获取源码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读