Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menganalisis penulisan soalan CTF

Bagaimana untuk menganalisis penulisan soalan CTF

王林
王林ke hadapan
2023-05-20 20:19:04982semak imbas

Ini adalah soalan PWN yang agak mudah Mula-mula, seret ke dalam IDA dan lihat secara ringkas program, seperti yang ditunjukkan dalam rajah

Bagaimana untuk menganalisis penulisan soalan CTF

Saya dapati Semasa membaca, tiada perlindungan tindanan, jadi apabila membaca 0x34, alamat pemulangan permainan boleh diganti, pertama melalui tulis(1,tulis,4) (permainan digunakan sebagai alamat pemulangan tulis). Baca alamat tulis dengan cara ini, supaya anda boleh mendapatkan alamat sistem, kerana ia berjalan dalam gelung sekali lagi, dan juga menulis /bin/sh pada 0x804A06C

.replace("","").replace("r","").replace("n","").decode("hex")

dword_403018=""" 0200 00 00 02 00 00 00

0200 00 00 02 00 00 00 00 00 00 00 00 00 00 00

"""ganti).(ganti) r","").replace("n","").decode("hex")

#text:0040110E                   mov   ecx, [ebp+var_4]

#.text : 0040111 XOR ECX, EBP

# Teks: 00401113 MOV DWORD_40301C, 3

# Teks: 0040111d MOV Dword_403020, 40302020, 40302000 🎜>

#Nilai ingatan telah berubah, jadi ubah suai

dword_403018= dword_403018[0:4] + 'x03' + dword_403018[5:8]

              0                                                                                         :12] + 'x07'

+dword_403018[13:]

printdword_403018.encode("hex")

fori dalam julat(0 ,42):

hightnum= ord(dword_403018[ord(bait_402178[i])*4]) numbershow= hightnum+ ord(bait_402138[ord(var_6c[i ])*4])

printchr(numbershow),

bendera{06b16a72-51cc-4310-88ab-70ab68290e22}

0x03 sqli

Soalan ini bersamaan serangan. Nama pengguna berdaftar ialah "admin" dan kata laluan adalah kata laluan yang memenuhi peraturan. Kemudian log masuk dan anda akan melihat bendera

bendera{b5a1f9c5-ac30-4e88-b460-e90bcb65bd70}

0x04 RSA

opensslrsa -maklumkan PEM -in pubkey1.pem -pubin -text

Kunci Awam: (2048 bit)

Modulus:

00:89:89:a3:98:98:84:56:b3:fe:f4:a6:ad:86:df:

3c:99:57:7f:89:78: 04:8d:e5:43:6b:ef:c3:0d:8d:

8c:94:95:89:12:aa:52:6f:f3:33:b6:68:57: 30:6e:

bb:8d:e3:6c:2c:39:6a:84:ef:dc:5d:38:25:02:da:

a1:a3: f3:b6:e9:75:02:d2:e3:1c:84:93:30:f5:b4:

c9:52:57:a1:49:a9:7f:59:54: ea:f8:93:41:14:7a:

dc:dd:4e:95:0f:ff:74:e3:0b:be:62:28:76:b4:2e:

ea:c8:6d:f4:ad:97:15:d0:5b:56:04:aa:81:79:42:

4c:7d:9a:c4:6b: d6:b5:f3:22:b2:b5:72:8b:a1:48:

70:4a:25:a8:ef:cc:1e:7c:84:ea:7e:5c: e3:e0:17:

03:f0:4f:94:a4:31:d9:95:4b:d7:ae:2c:7d:d6:e8:

79: b3:5f:8a:2d:4a:5e:fb:e7:37:25:7b:f9:9b:d9:

ee:66:b1:5a:ff:23:3f:c7: 7b:55:8a:48:7d:a5:95:

2f:be:2b:92:3d:a9:c5:eb:46:78:8c:05:03:36:b7:

e3:6a:5e:d8:2d:5c:1b:2a:eb:0e:45:be:e4:05:cb:

e7:24:81:db: 25:68:aa:82:9e:ea:c8:7d:20:1a:5a:

8f:f5:ee:6f:0b:e3:81:92:ab:28:39: 63:5f:6c:66:

42:17

Eksponen:2333 (0x91d)

opensslrsa -maklumkan PEM -in pubkey2.pem -pubin -text

Kunci Awam:(2048 bit)

Modulus:

00:89:89:a3:98:98:84:56:b3:fe:f4:a6: iklan:86:df:

3c:99:57:7f:89:78:04:8d:e5:43:6b:ef:c3:0d:8d:

8c: 94:95:89:12:aa:52:6f:f3:33:b6:68:57:30:6e:

bb:8d:e3:6c:2c:39:6a:84: ef:dc:5d:38:25:02:da:

a1:a3:f3:b6:e9:75:02:d2:e3:1c:84:93:30:f5:b4:

c9:52:57:a1:49:a9:7f:59:54:ea:f8:93:41:14:7a:

dc:dd:4e:95: 0f:ff:74:e3:0b:be:62:28:76:b4:2e:

ea:c8:6d:f4:ad:97:15:d0:5b:56:04: aa:81:79:42:

4c:7d:9a:c4:6b:d6:b5:f3:22:b2:b5:72:8b:a1:48:

70:4a:25:a8:ef:cc:1e:7c:84:ea:7e:5c:e3:e0:17:

03:f0:4f:94:a4:31:d9: 95:4b:d7:ae:2c:7d:d6:e8:

79:b3:5f:8a:2d:4a:5e:fb:e7:37:25:7b:f9:9b: d9:

ee:66:b1:5a:ff:23:3f:c7:7b:55:8a:48:7d:a5:95:

2f:be:2b: 92:3d:a9:c5:eb:46:78:8c:05:03:36:b7:

e3:6a:5e:d8:2d:5c:1b:2a:eb:0e: 45:be:e4:05:cb:

e7:24:81:db:25:68:aa:82:9e:ea:c8:7d:20:1a:5a:

8f:f5:ee:6f:0b:e3:81:92:ab:28:39:63:5f:6c:66:

42:17

Eksponen:23333 (0x5b25).

Dapat dilihat bahawa kedua-dua kunci awam n adalah sama, tetapi e adalah berbeza Serangan mod biasa menggunakan RSA

Python adalah seperti berikut:

<.>fromlibnum import n2s ,s2n

fromgmpy2 import invert

importbase64

importgmpy2

defbignumber(n):

.decode("hex ")

rn= 0

forb in n:

rn= rn rn+= ord( b)

returnrn

n ="""00:89:89:a3:98:98:84:56:b3:fe:f4:a6:ad:86:df:

3c:99:57:7f:89:78:04:8d:e5:43:6b:ef:c3:0d:8d:

8c:94:95:89: 12:aa:52 :6f:f3:33:b6:68:57:30:6e:

   bb:8d:e3:6c:2c:39:6a:84:ef:dc:5d:38:25:02:da:

   a1:a3:f3:b6:e9:75 :02:d2:e3:1c:84:93:30:f5:b4:

   c9:52:57:a1:49:a9:7f:59:54:ea:f8:93:41 :14:7a:

   dc:dd:4e:95:0f:ff:74:e3:0b:be:62:28:76:b4:2e:

   ea:c8 :6d:f4:ad:97:15:d0:5b:56:04:aa:81:79:42:

   4c:7d:9a:c4:6b:d6:b5:f3:22 :b2:b5:72:8b:a1:48:

   70:4a:25:a8:ef:cc:1e:7c:84:ea:7e:5c:e3:e0:17:

   03:f0:4f:94:a4:31:d9:95:4b:d7:ae:2c:7d:d6:e8:

   79:b3:5f:8a:2d :4a:5e:fb:e7:37:25:7b:f9:9b:d9:

   ee:66:b1:5a:ff:23:3f:c7:7b:55:8a:48 :7d:a5:95:

   2f:be:2b:92:3d:a9:c5:eb:46:78:8c:05:03:36:b7:

   e3 :6a:5e:d8:2d:5c:1b:2a:eb:0e:45:be:e4:05:cb:

   e7:24:81:db:25:68:aa:82 :9e:ea:c8:7d:20:1a:5a:

   8f:f5:ee:6f:0b:e3:81:92:ab:28:39:63:5f:6c:66 :42:17"""

    .replace(":",").replace("",").replace("r",").replace("n"," ")

#printn

n =bignumber(n)

printhex(n)

e1= 2333

e2=23333

defegcd(a,b):

   ifa == 0:

       return(b,0,1)

   lain:

        ,y,x= egcd(b%a,a)

       return(g,x - (b //a)*y,y)

flag1 = base64.b64decode (open( "flag1.enc","rb").read())

flag2 = base64.b64decode(open("flag2.enc","rb").read())

c1= s2n(bendera1)

c2= s2n(bendera2)

c2= songsang(c2,n)

#s= egcd(e1,e2)

#cetakan

s =gmpy2.gcdext(e1,e2)

#cetakan

s1= s[1]

s2= 0 - s[2]

cetakan1

cetakan2

m =pow(c1,s1,n) * pow(c2,s2,n)%n

down.php?urls=data/../config.php

下载文件发现DB_user/mvoa用户的密码

define('B_PWD' !hpp3Dn1.');

bendera值:B!hpp3Dn1.

2.http://url/www.zip,获得网站备份文件,在config.php发/现用户的密码

define('DB_PWD','mypasswd');flag值:mypasswd

0x06 暗度陈仓.

/u-are-admin/download.php?dl=

2.在/u-Are-Admin/目录,可以上传文件,上传大專Php/绕过)一句话木马,菜刀链接,netuser查看系统管理员Hack用户的全名

flag值17>0x07 瞒天过海

1.AWVS扫到注入点

/cat.php?id=2

sqlmap直接能跑,通过注入即可获得后台管理味>bendera值:serverlogflag值:rootserver

3.录password.txt内容

/classes/downloadfile.php ?file=../../../../../../password.txt

bendera值:c9c35cf409344312146fa7546a94d1a6

0x08 偷梁换柱

1 AWVS.名密码登录, pusat membeli-belah,即使文件真正地址,

/admin/uploads/111.php.png直接菜刀链接,png也能当成php直接解析,然城net得系统管理员ichunqiu用户的全名。

3.菜刀能够直接查看/tmp/access.log的内容的前16位

华容容的前16位

华厜>

华厮>1.个大马的txt文件,然后getshell,构造路径为

url/info/include.php?filename=..//sjk-uploads/UareHack.txt

2.拿到shell可以获取ichunqiu用户取ichunqiu用户玜容容🎜>3.getshell后,传msf木马无法反弹,最后使用QuarksPwDump拿到了ichunqiu用户密码HASH,在线破解拿到>

bendera值:123qwe123

Atas ialah kandungan terperinci Bagaimana untuk menganalisis penulisan soalan CTF. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam