Maison  >  Article  >  Opération et maintenance  >  Comment analyser la rédaction des questions du CTF

Comment analyser la rédaction des questions du CTF

王林
王林avant
2023-05-20 20:19:041024parcourir

Il s'agit d'une question PWN relativement simple. Tout d'abord, faites-le glisser dans IDA et regardez brièvement le programme, comme le montre l'image

Comment analyser la rédaction des questions du CTF

Il s'avère qu'il n'y a pas de protection de pile pendant la lecture, donc quand. en lisant 0x34, il est possible de remplacer l'adresse de retour du jeu, premier passage write(1,write,4) (le jeu est utilisé comme adresse de retour d'écriture). Lisez l'adresse d'écriture de cette manière, afin d'obtenir l'adresse du système, car elle s'exécute à nouveau en boucle et écrit également /bin/sh à 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

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

#text:0040110E                                                                                                                                                      01113     mov dword_40301C, 3

#.text 403018= dword_403 ; 018[0:4] + 'x03' + dword_403018[5:8]

                                                                                                                                    42 ):

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

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

printchr(numbershow) ,

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

0x03 sqli

Cette question est une attaque par contrainte SQL Le nom d'utilisateur enregistré est "admin" et le mot de passe est un mot de passe conforme à la réglementation. Ensuite, connectez-vous. entrez et vous verrez le drapeau

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

0x04 RSA

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

Public-Key:(2048 bits)

Module :

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

Exposant: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

Exposant:23333 (0x5b25).

On voit que ces deux clés publiques n sont les mêmes. La seule différence est que l'attaque en mode commun utilisant RSA

Python est la suivante :

fromlibnum import n2s,s2n

fromgmpy2 import invert

importbase64

importgmpy2

defbignumber(n):

n= n.decode( "hex")

rn= 0

forb in n:

rn= rn

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 =grandnuméro (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= inverser(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(大小写绕过)一句Télécharger : Hacked356

3.shell能够直接查看超级管理员用户桌面根目录admin.txt文件的内容

flag值:ad16a159581c7085c771f

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

flag值:serverlog

2 rootserver

flag Nom :rootserver

3.根目录password.txt内容

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

flag值: c9c35cf409344312146fa7546a94d1a6

0x08 1.AWVS扫到./git源码泄露,用工具GitHack下载所有源码,在数据库文件发现用户名,密码(adminAdmin@pgsql)

flag值:Admin@pgsql

2.

/admin/uploads/111.php.png

直接菜刀链接,png也能当成php直接https://tmp/access.log的https://sjk-url/info/include.php?filename=..//sjk-uploads/UareHack.txt

密码是a , Utilisez Shell pour phpStudy et Documents.txt avec mot de passe.txt pour ichunqiu

3.get shell et msf sont également disponibles pour QuarksPwDump. ichunqiu用户密码HASH,在线破解拿到密码

78beaa5511afa889b75e0c8d76954a50:4ffe895918a454ce0f872dad8af0b4da:::

flag值:123qwe123

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer