中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

食品 網(wǎng)站源碼山東移動網(wǎng)站建設(shè)

食品 網(wǎng)站源碼,山東移動網(wǎng)站建設(shè),重慶網(wǎng)站建設(shè)哪家公司哪家好,中國能源建設(shè)集團網(wǎng)站群題解 web:[極客大挑戰(zhàn) 2019]Secret File(文件包含漏洞) 打開鏈接是一個普通的文字界面 查看一下源代碼 發(fā)現(xiàn)一個鏈接,點進去看看 再點一次看看,沒什么用 仔細(xì)看,有一個問題,當(dāng)點擊./action.ph…

題解

web:[極客大挑戰(zhàn) 2019]Secret File(文件包含漏洞)

打開鏈接是一個普通的文字界面

查看一下源代碼

?發(fā)現(xiàn)一個鏈接,點進去看看

再點一次看看,沒什么用

仔細(xì)看,有一個問題,當(dāng)點擊./action.php時,跳轉(zhuǎn)到了./end.php界面

我們直接把end換成action試試,可是每一次訪問又自動跳轉(zhuǎn)到end.php了,在原界面查看也是一樣,老是跳轉(zhuǎn)

中間肯定有一個界面,只是我們無權(quán)訪問,使用bp抓包試試

訪問一下這個文件試試

訪問一下flag.php ,被隱藏了,但是看源代碼也是什么都沒有

再返回上一個界面看看,在url中得到一個變量file,如果file中含有../、tp、input、data等字符串,則輸出out,否則執(zhí)行file所指的文件發(fā)現(xiàn)過濾了部分關(guān)鍵字,但是并未過濾filter,那么可以嘗試用php://filter來獲取flag.php的內(nèi)容

構(gòu)造payload:將源代碼轉(zhuǎn)換為base64編碼

secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php

?base64解碼

misc:buuctf另一個世界

附件下載,是一張圖片

結(jié)合題目所說的另一個世界,考慮是圖片隱寫,使用010打開,拉到最后有一串稀奇古怪的二進制

轉(zhuǎn)成字符串試試

提交一下試試,居然真的就是flag

crypto:

昨天的RSA沒整完,接著搞,搞完了就不兌換reverse和pwn了

BUUCTF-RSA2(低解密指數(shù)攻擊)

下載附件在記事本中打開,得到兩個巨大的n和e

用rsa-wiener-attack得出d

腳本

N = 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241962525705950046253400188884658262496534706438791515071885860897552736656899566915731297225817250639873643376310103992170646906557242832893914902053581087502512787303322747780420210884852166586717636559058152544979471
e = 46731919563265721307105180410302518676676135509737992912625092976849075262192092549323082367518264378630543338219025744820916471913696072050291990620486581719410354385121760761374229374847695148230596005409978383369740305816082770283909611956355972181848077519920922059268376958811713365106925235218265173085d = 8920758995414587152829426558580025657357328745839747693739591820283538307445
dd = hex(d)
dd = dd+"L"
print(dd)
import hashlib
flag = "flag{" + hashlib.md5(dd.encode("utf-8")).hexdigest() + "}"
print(flag)

?BUUCTF [BJDCTF2020]rsa_output

一開始沒看懂這是個啥,看了大佬的wp才知道{}中的是兩個n和e,massage是兩個c,仔細(xì)看,兩個n還是相同的

既然是知道了c1,c2和e1,e2以及一個共同的n,那么嘗試共模攻擊

腳本:

import gmpy2
from Crypto.Util.number import getPrime,long_to_bytese1 = 2767
e2 = 3659
n = 21058339337354287847534107544613605305015441090508924094198816691219103399526800112802416383088995253908857460266726925615826895303377801614829364034624475195859997943146305588315939130777450485196290766249612340054354622516207681542973756257677388091926549655162490873849955783768663029138647079874278240867932127196686258800146911620730706734103611833179733264096475286491988063990431085380499075005629807702406676707841324660971173253100956362528346684752959937473852630145893796056675793646430793578265418255919376323796044588559726703858429311784705245069845938316802681575653653770883615525735690306674635167111c1 = 20152490165522401747723193966902181151098731763998057421967155300933719378216342043730801302534978403741086887969040721959533190058342762057359432663717825826365444996915469039056428416166173920958243044831404924113442512617599426876141184212121677500371236937127571802891321706587610393639446868836987170301813018218408886968263882123084155607494076330256934285171370758586535415136162861138898728910585138378884530819857478609791126971308624318454905992919405355751492789110009313138417265126117273710813843923143381276204802515910527468883224274829962479636527422350190210717694762908096944600267033351813929448599
c2 = 11298697323140988812057735324285908480504721454145796535014418738959035245600679947297874517818928181509081545027056523790022598233918011261011973196386395689371526774785582326121959186195586069851592467637819366624044133661016373360885158956955263645614345881350494012328275215821306955212788282617812686548883151066866149060363482958708364726982908798340182288702101023393839781427386537230459436512613047311585875068008210818996941460156589314135010438362447522428206884944952639826677247819066812706835773107059567082822312300721049827013660418610265189288840247186598145741724084351633508492707755206886202876227_,s1, s2 = gmpy2.gcdext(e1, e2)
m = pow(c1, s1, n) * pow(c2, s2, n) % n
print(long_to_bytes(m))

?BUUCTF RSA2(dp泄露)

?下載附件,題目給出了e,n,dp,c

常規(guī)思路是將n分解為p和q,但是這里的n太大,不好分解,而這里給出了dp,可以利用bp寫腳本(公式代換在后面)

import gmpy2
from Crypto.Util.number import long_to_bytese = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751for i in range(1, e):if (dp * e - 1) % i == 0:if n % (((dp * e - 1) // i) + 1) == 0:p = ((dp * e - 1) // i) + 1q = n // (((dp * e - 1) // i) + 1)d = gmpy2.invert(e, (p-1)*(q-1))m = pow(c, d, n)print(m)
print(long_to_bytes(m))

?BUUCTF RSA1

題目給出p,q,dp,dq,c,沒有e

?腳本:

import gmpy2
from Crypto.Util.number import long_to_bytes
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852
I = gmpy2.invert(q,p)
m1 = pow(c,dp,p)
m2 = pow(c,dq,q)
m = (((m1-m2)*I)%p)*q+m2
print(long_to_bytes(m))

?BUUCTF rabbit

下載附件,得到密文

直接在線解密得到flag

知識點

web

php filter協(xié)議:一種過濾器,可以作為一個中間流來過濾其他的數(shù)據(jù)流

作用:讀取或者寫入部分?jǐn)?shù)據(jù),且在讀取和寫入之前對數(shù)據(jù)進行一些過濾,例如base64編碼,rot13處理等

使用方法:一般語法為

php://filter/過濾器|過濾器/resource=待過濾的數(shù)據(jù)流

其中過濾器可以設(shè)置多個,按照鏈?zhǔn)降姆绞揭来螌?shù)據(jù)進行過濾處理

e.g.對<?php phpinfo();?>這個字符串進行了兩次base64編碼處理

echo file_get_contents("php://filter/read=convert.base64-encode|convert.base64-encode/resource=data://text/plain,<?php phpinfo();?>");

?crypto

5.低解密指數(shù)攻擊(維納攻擊)

適用情況:e很大,解密指數(shù)d較小,公鑰e和模數(shù)n是公開的

原理:

ed ≡ 1 (mod φ(n)),其中e是公鑰的加密指數(shù),d是私鑰的解密指數(shù),φ(n)是n的歐拉函數(shù)值(即(p-1)(q-1))。當(dāng)d較小時,攻擊者可以通過對e/N(N=pq)進行連分?jǐn)?shù)展開,找到一串?dāng)?shù)的分母,這個分母很有可能就是d。

工具:rsa-wiener-attack

下載工具后使用wiener攻擊腳本得出d的值(注意要將腳本和rsa-wiener-attack的py文件放在同一個目錄下)

import  RSAwienerHacker
n = 
e = 
d =  RSAwienerHacker.hack_RSA(e,n)
if d:print(d)

腳本:

N = 
e = d = 
dd = hex(d)
dd = dd+"L"
print(dd)
import hashlib
flag = "flag{" + hashlib.md5(dd.encode("utf-8")).hexdigest() + "}"
print(flag)

具體原理參考:RSA加密與解密(一)_rsa解密-CSDN博客

6.共模攻擊

適用情況:多組c,e但模數(shù)n相同,且e之間最好互質(zhì)

原理:當(dāng)多個密文使用相同的n進行加密時,可能通過密文之間的關(guān)系來獲取明文信息,而無需知道私鑰

c1 = m^e1 mod n??? =>c1^s1 = m^(e1*s1) mod n

c2 = m^e2 mod n??? =>c2^s2 = m^(e2*s2) mod n

兩者相乘,通過擴展歐幾里得定理,我們可知e1與e2互質(zhì),必存在s1和s2使e1*s1+e2*s2=1

由此可求出相對應(yīng)的s1和s2.

m=(c1*s1+c2*s2)%n

?腳本:

import gmpy2
from Crypto.Util.number import getPrime,long_to_bytese1 = 
e2 = 
n = c1 = 
c2 = _,s1, s2 = gmpy2.gcdext(e1, e2)
m = pow(c1, s1, n) * pow(c2, s2, n) % n
print(long_to_bytes(m))

7.dp泄露

適用情況:題目提供dp或dq

原理:

dp=d%(p-1)

d = dp + k1 * (p-1)

d * e = 1 + k2(p-1)(q-1)

把第二個式子的d代換掉:

e * (dp + k1(p-1)) = 1 + k2(p-1)(q-1)

兩邊同時對(p-1)取模,消去k

e * dp % (p - 1) = 1

e * dp = 1 + k(p - 1)

再通過爆破k的方式求出p,進而求出d

?腳本:

import gmpy2
from Crypto.Util.number import long_to_bytese =
n = 
dp = c = for i in range(1, e):if (dp * e - 1) % i == 0:if n % (((dp * e - 1) // i) + 1) == 0:p = ((dp * e - 1) // i) + 1q = n // (((dp * e - 1) // i) + 1)d = gmpy2.invert(e, (p-1)*(q-1))m = pow(c, d, n)print(m)
print(long_to_bytes(m))

8.dp,dq同時泄露

原理:

m1 = c^dpmodp

m2 = c^dqmodq

m = (((m1-m2)*I)%p)*q+m2

其中I為對pq求逆元

腳本:

import gmpy2
from Crypto.Util.number import long_to_bytes
p = 
q = 
dp = 
dq = 
c = 
I = gmpy2.invert(q,p)
m1 = pow(c,dp,p)
m2 = pow(c,dq,q)
m = (((m1-m2)*I)%p)*q+m2
print(long_to_bytes(m))
http://www.risenshineclean.com/news/11027.html

相關(guān)文章:

  • 網(wǎng)頁小游戲在線玩知乎北京網(wǎng)站快速優(yōu)化排名
  • 網(wǎng)站建設(shè)需不需要編程企業(yè)培訓(xùn)機構(gòu)
  • 網(wǎng)站html5自適應(yīng)屏幕營銷策劃精準(zhǔn)營銷
  • 那些免費網(wǎng)站可以做國外貿(mào)易國內(nèi)最新新聞大事
  • 上海網(wǎng)站制作優(yōu)化公司臨沂做網(wǎng)絡(luò)優(yōu)化的公司
  • 檔案網(wǎng)站建設(shè)思考北京seo多少錢
  • 廣州seo培訓(xùn)機構(gòu)seo在線教程
  • 河南省建設(shè)廳門戶網(wǎng)站100個免費推廣網(wǎng)站
  • 茶葉有什么網(wǎng)站可以做推廣微營銷
  • 手機網(wǎng)站生成app網(wǎng)頁怎么優(yōu)化
  • 蘇州企業(yè)網(wǎng)站設(shè)計方案網(wǎng)站關(guān)鍵詞優(yōu)化wang
  • 做app 的模板下載網(wǎng)站有哪些網(wǎng)站seo外包靠譜嗎
  • 政府網(wǎng)站建設(shè)的重要性wordpress建站
  • 蘇州市政府網(wǎng)站建設(shè)評估免費外鏈發(fā)布平臺
  • 今天最新新聞報道seo關(guān)鍵詞推廣優(yōu)化
  • 動態(tài)網(wǎng)站沒有數(shù)據(jù)庫怎么做快手作品免費推廣軟件
  • 九江網(wǎng)站開發(fā)汕頭百度推廣公司
  • 百度公司可以做網(wǎng)站么中國搜索引擎排名2021
  • 學(xué)網(wǎng)站開發(fā)培訓(xùn)機構(gòu)今日新聞聯(lián)播主要內(nèi)容
  • 內(nèi)容相同的 網(wǎng)站網(wǎng)絡(luò)軟營銷
  • WordPress一鍵安裝安全東莞百度seo推廣公司
  • 擁有服務(wù)器后如何做網(wǎng)站廣告推廣軟件
  • 什么網(wǎng)站比較少人做國家市場監(jiān)督管理總局官網(wǎng)
  • 品牌設(shè)計公司哪里seo流量排行榜神器
  • 綠色資源網(wǎng)汕頭seo網(wǎng)站建設(shè)
  • 網(wǎng)站備案幕布尺寸網(wǎng)站seo快速
  • 男女主網(wǎng)站上做的popo網(wǎng)站建設(shè)優(yōu)化
  • 鶴崗北京網(wǎng)站建設(shè)谷歌搜索引擎怎么才能用
  • 廈門同安區(qū)建設(shè)局網(wǎng)站軟文營銷常用的方式是什么
  • 重慶網(wǎng)站有哪些太原百度快速優(yōu)化