喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station

正文

2学术讨论

作者:2学术讨论
{"name":"2学术讨论","sizeType":1,"icon":"","order":9999,"description":"","comp":""}

回复

ios大神来上课了!

作者:山海不可平
好激动!好鸡冻! ios大神直播上课了 还有8年软件开发经验的搜狗工程师黄毅,和10年软件开发经验的华为工程师、架构师 快点我! 有教第三方支付(微信、APPLE Pay) 课程不再是基础班,而是进阶班给有基础的同学一个上升的台阶!
查看回复

Android安全之Https中间人攻击漏洞

作者:御安全
Android安全之Https中间人攻击漏洞
Android安全 Https 攻击漏洞 应用加固 御安全 MITM
0X01 概述
[attach]466103[/attach]
HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性
中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
https在理论上是可以抵御MITM,但是由于开发过程中的编码不规范,导致https可能存在MITM攻击风险,攻击者可以解密、篡改https数据。
0X02 https漏洞
Android https的开发过程中常见的安全缺陷:
1)在自定义实现X509TrustManager时,checkServerTrusted中没有检查证书是否可信,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
2)在重写WebViewClient的onReceivedSslError方法时,调用proceed忽略证书验证错误信息继续加载页面,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
3)在自定义实现HostnameVerifier时,没有在verify中进行严格证书校验,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
4)在setHostnameVerifier方法中使用ALLOW_ALL_HOSTNAME_VERIFIER,信任所有Hostname,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
0X03 漏洞案例
案例一:京东金融MITM漏洞
京东金融Ver 2.8.0由于证书校验有缺陷,导致https中间人攻击,攻击者直接可以获取到会话中敏感数据的加密秘钥,另外由于APP没有做应用加固或混淆,因此可以轻松分析出解密算法,利用获取到的key解密敏感数据。
御安全扫描结果:
[attach]466104[/attach]
如下是登陆过程中捕获到的数据:
[attach]466105[/attach]
其中的secretkey用于加密后期通信过程中的敏感数据,由于APP中使用的是对称加密,攻击者可以还原所有的通信数据。
案例二:中国移动和包任意消费漏洞
HTTPS证书校验不严格,可被MITM;
加密算法不安全,可被破解;
关键数据保存在sdcard卡上,可被任意访问;
代码混淆度低,业务逻辑,关键数据泄漏;
消息签名算法比较简单,数据可被修改;
通信数据如下:
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
.......
Content-Length: 521
Host: mca.cmpay.com:28710
Connection: Keep-Alive
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
Cookie2: $Version=1
<?xml version="1.0" encoding="UTF-8" ?><ROOT><HEAD><IMEI>866697029909260</IMEI><MCID>201603241008185gye5tKk6EPB4iliO7</MCID><TXNCD>2201194</TXNCD><VERSION >4.3.82</VERSION ><UA>Android_21-1794*1080-HUAWEI GRA_UL10</UA><SOURCE>2009</SOURCE><PLAT>3</PLAT><DEVID>CAS00016</DEVID><SERLNO>991</SERLNO></HEAD><BODY><IMEI>866697029909260</IMEI><ENTRY>10</ENTRY><MAC>50:a7:2b:c5:e2:d8</MA
在用户开启免密支付的前提下,结合以上安全问题,可以实现本地或远程攻击,直接盗取和包用户资金,如给任意账号充值等,给用户带来直接经济损失。
[attach]466106[/attach]
0X03 安全建议
1) 建议自定义实现X509TrustManager时,在checkServerTrusted中对服务器信息进行严格校验
2)在重写WebViewClient的onReceivedSslError方法时,避免调用proceed忽略证书验证错误信息继续加载页面
3)在自定义实现HostnameVerifier时,在verify中对Hostname进行严格校验
4)建议setHostnameVerifier方法中使用STRICT_HOSTNAME_VERIFIER进行严格证书校验,避免使用ALLOW_ALL_HOSTNAME_VERIFIER
0X04 参考
https://en.wikipedia.org/wiki/MITM
https://en.wikipedia.org/wiki/HTTPS
http://drops.wooyun.org/tips/3296
(腾讯御安全技术博客)
查看回复

分享一个好用的在线颜色选择器

作者:sfdfdgfdghtdh
查看回复

小白急求大神解惑!!!!求QAQ

作者:|无爱、亦莫相知
今天 我们班来了新老师 接替原来的网页老师 教我网页..... 然后 我 把标题文字 加了strong标签。。。。。然后开始写css改变strong标签的样子。。。 #38t问题就出来。。。。。这个老师走过来看到我在写的代码 说 strong标签 用CSS定义 会造成冲突 #49t然后问是什么冲突又貌似不知道的样子。。。上到台上就说 “下面有同学用strong*********会影响搜索引擎,开发搜索引擎的同学就会很注意的********这样做很不好,结构冲突***” *号是我根本没听清楚的地方,支支吾吾的,不知道说的什么 然后我记得之前我这么做 上个老师说可以这样的 求问 大神 我错在哪里?求指出.....#10t
查看回复

递归,程序之美,简介

作者:liyong0310
兔子生兔子”的问题是这样的: 有一只神奇的兔子,它可以靠自己就可以生兔子!但有个时间的规定,它出生后的第三个月开始才可以生一只兔子,但此后的每个月都可以生一只兔子,而且更神奇的是,它所生的兔子竟然跟它有一模一样的魔力!斐波纳契序列 1、1、2、3、5、8、13、21、33、。。。。。。计算机递归编程实现: <html> <head> <title>函数的递归实例</title> </head> <body> <?php function Fibanacci($num) //定义Fibanacci函数 { if($num==1 || $num==2) //如果为第一项和第二项 return 1; //返回值为1 else //除1、2外的其他项 return Fibanacci($num-1)+Fibanacci($num-2); //递归调用前两项之和 } echo "斐波纳契数列的第1项为:"; echo Fibanacci(1); echo "<p>"; echo "斐波纳契数列的第12项为:"; echo Fibanacci(12); echo "<p>"; echo "斐波纳契数列的第7项为:"; echo Fibanacci(7); echo "<p>"; echo "斐波纳契数列的第20项为:"; echo Fibanacci(20); ?> </body> </html> 不用递归,就这样解决:
public class Test{ public static void main(String []args){ int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>1=1; int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>2=1; int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>=num1+num2; System.out.print(" "+num1+" "+num2+" "+num); //前24个月 for(int i=3;i<24;i++){ int num3=num+num2; num2=num; num=num3; System.out.print(" "+num3); if(i%5==0){ System.out.println(); } } } }
查看回复

php函数之自定义函数的参数中默认参数

作者:liyong0310
例子中定义了有两个参数的函数,其中¥color参数有默认值。即调用函数时,如果不传入可选参数$color,将是用默认值“#000000”,即黑色字体;第二次调用使用了“red”参数,所以打印字体为红色的。 <html> <head> <title>函数有默认值参数的使用实例</title> </head> <body> <?php function B_I_text($text,$color="#000000") //定义有参数函数,其中$color参数有默认值 { echo "<font color=".$color.">"; //使用颜色参数 echo "<b><i>".$text."</i></b>"; //打印字符并加入粗体斜体效果 echo "</font>"; } $string="PHP编程是一件很简单的事情"; //定义变量 echo $string; //打印变量 echo "<br>"; B_I_text($string); //调用函数,无$color参数 Echo "<p>"; B_i_text($string,"red"); //调用函数,加入$color参数 ?> </body> </html>
查看回复

php函数还可以有条件调用

作者:liyong0310
例子,一个家长叫小孩去买东西,小孩如何去买东西可以作是一个函数。但是小孩也给家长一个条件,如果给一元辛苦费才去买。即只有满足了给一元钱的条件,才去执行买东西这个函数,也才考虑怎么去买。如果条件根本不存在,那么函数相当于没有定义,当然也不会执行了! <html> <head> <title>函数参数的使用实例</title> </head> <body> <?php $quest=false; if ($quest){ function B_I_text($text) //定义有参数函数 { echo "<b><i>".$text."</i></b>"; //打印字符并加入粗体斜体效果 } } $string="PHP编程是一件很简单的事情"; //定义变量 echo $string; //打印变量 echo "<br>"; B_I_text($string); //用实际参数调用函数 ?> </body> </html> 这个程序执行到调用B_I_text($text)函数时,就报错了!
查看回复

for循环语句和数组的一个例子

作者:liyong0310
<html> <head> <title>流程控制综合运用实例</title> <head> <body> <?php //首先定义一个数组——图书类型数组 $type[0][0]="学生用书"; //第一个大类别 $type[0][1]="学生教材"; //第一大类中的第一小类 $type[0][2]="教辅用书"; $type[0][3]="课外读物"; $type[0][4]="考试题集"; $type[1][0]="名著"; //第二个大类别 $type[1][1]="中国古典"; //第二大类中的第一小类 $type[1][2]="世界名著"; $type[1][3]="英文原著"; $type[2][0]="考试用书"; //第三个大类别 $type[2][1]="公务员"; //第三大类中的第一小类 $type[2][2]="会计师"; $type[2][3]="医药师"; $type[3][0]="儿童读物"; //第四个大类别 $type[3][1]="看图识字"; //第四大类中的第一小类 $type[3][2]="动漫人物"; $type[4][0]="武侠小说"; //第五个大类别 $type[4][1]="金庸小说"; //第五大类中的第一小类 $type[4][2]="古龙小说"; $type[4][3]="玄幻小说"; echo "<table border=\"1\">"; //打印表格头 for($i=0;$i<count($type);$i++) //外层循环 { $s=0; //定义循环标识变量 for($j=0;$j<count($type[$i]);$j++) //内层循环 { if($s%2==0) echo "<tr>"; //如果标识为偶数新起一行 $s++; //标识自增 if($j==0) //判断是否为大类别 echo "<td colspan=2 bgcolor=\"#cccc00\">"; //打印大类别的表格 else echo "<td bgcolor=\"#ccccff\">"; //打印小类别的表格 echo $type[$i][$j]; //输出数据 echo "</td>"; //表格结束 if($j==0) //判断是否为大类别 $s++; //如果为大类别则标识再次自增 if($s%2==0) echo "</tr>"; //如果大类别一格或小类别两格则表格的地行结束 if($s==(count($type[$i])+1) && count($type[$i])%2==0)//判断小类别项为奇数的情况 echo "<td bgcolor=\"#ccccff\"> </td></tr>";//在后面添加空表格 } } ?> </body> </html> 这里的循环语句中有个S变量,起到了很关键的作用,算是很巧妙!
查看回复
上一页
下一页
0%
粤ICP备18082987号-1 浙公网安备 33010902001746号
站点地图友情链接:
喵宅苑
喵空间社区程序
络合兔
技术宅
腕能新趣
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の博客
茶兔社区
乐享社区
魂研社
26云导航
Nothentai
Lanzainc