Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So analysieren Sie den Text von CTF-Fragen

So analysieren Sie den Text von CTF-Fragen

王林
王林nach vorne
2023-05-20 20:19:041022Durchsuche

Dies ist eine relativ einfache PWN-Frage. Ziehen Sie sie zunächst in IDA und schauen Sie sich das Programm kurz an, wie im Bild gezeigt. Es wurde festgestellt, dass beim Lesen kein Stapelschutz vorhanden ist Beim Lesen von 0x34 ist es möglich, die Rückgabeadresse des Spiels durch den ersten Durchgang von write(1,write,4) zu ersetzen (das Spiel wird als Schreibrückgabeadresse verwendet). Lesen Sie auf diese Weise die Schreibadresse aus, damit Sie die Systemadresse erhalten, da diese erneut in einer Schleife ausgeführt wird und auch /bin/sh bei 0x804A06C schreibt

.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

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

#text: 0040110e 01113 mov dword_40301c, 3

#.Text; 403018 = DWORD_403018 [0: 4] + 'x03' + DWORD_403018 [5: 8]

42):

hightnum= ord(dword_403018[ord(byte_402178[i])*4])<<4

numbershow= hightnum+ ord(byte_402138[ord(var_6c[i])*4])

printchr(numbershow) ,

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

0x03 sqli

Diese Frage ist ein SQL-Einschränkungsangriff. Der registrierte Benutzername ist „admin“ und das Passwort ist ein Passwort, das den Vorschriften entspricht in und Sie werden die Flagge sehen

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

0x04 RSA

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

Public-Key:(2048 Bit)

Modul:

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

Exponent:2333 (0x91d )

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

Public-Key:(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

Exponent:23333 (0x5b25).

Es ist ersichtlich, dass diese beiden öffentlichen Schlüssel n gleich sind. Der einzige Unterschied besteht darin, dass der Common-Mode-Angriff mit RSA

Python wie folgt ist:

fromlibnum import n2s,s2n

fromgmpy2 import invert

importbase64

importgmpy2

defbignumber(n):

n= n.decode( "hex")

rn= 0

forb in n:

rn= rn << 8

rn+= ord(b)

returnrn

n ="""00:89:89:a 3 :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 =große Zahl (n)

prinThex (n)

e1 = 2333

e2 = 23333

defegcd (a, b):

ifa == 0:

return (b, 0,1)

else:

       g,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(flag1)

c2= s2n (flag2)

c2= invert(c2,n)

#s= egcd(e1,e2)

#prints

s =gmpy2.gcdext(e1,e2)

#prints

s1= s[ 1]

s2= 0 - s[2]

prints1

prints2

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

printn2s(m)

flag {4b0b4c8a- 82f3-4d80-902b-8e7a5706f8fe} 

0x05 抛砖引玉

1.根据CMS版本,在wooyun镜像站找到漏洞细节,

网站存在注入,但是数据库用户表为空,另外发现发现文件下载漏洞,

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

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

define('DB_PWD','B!hpp3Dn1.');

flag值:B !hpp3Dn1.

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

define('DB_PWD','mypasswd');

flag值:mypasswd

0x06 暗度陈仓

1.发现下载路径

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

显示文件找不到(u-A re-Admin/u-upload-file文件夹),发现关键目录/u-Are-Admin/

flag值:/u-Are-Admin/

2.在/u-Are-Admin/目录,可以上传文件,上传Php(大小写绕过)一句Download: Hacked356

3.shell

0x07 ›后台管理员明文密码,serverlog

flag值:serverlog

2 rootserver

flag值:rootserver

3.根目录password.txt内容

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

flag值: c9c35cf409344312146fa7546a94d1a6

0x08码,在数据库文件发现用户名,密码(adminAdmin@pgsql)

flag值:Admin@pgsql

2.用用户名密码登录, 管理图片可以上传一句话木马的图片,

/admin/uploads/111.php.png

直接菜刀链接, png也能当成php直接https://tmp/access.log的Mehr als 16 Tage lang Die Datei „phpStudy“ enthält die Datei „Documents.txt“.

2.拿到shell可以获取ichunqiu用户Desktop根目录password.txt的内容

.

3.getshell后,传msf木马无法反弹,最后使用QuarksPw Dump拿到了ichunqiu用户密码HASH,在线破解拿到密码

78beaa5511afa889b75e0c8d76954a50: 4ffe895918a454ce0f872dad8af0b4da:::

Flag值:123qwe123

Das obige ist der detaillierte Inhalt vonSo analysieren Sie den Text von CTF-Fragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen