분류 전체보기(363)
-
simple-ssti 풀이
우선 URL 뒤에 /{{4*4}}를 입력해보겠습니다. 문제 이름 자체가 SSTI니까 예상대로라면 /16이 화면에 출력될 것입니다. 코드를 보니 app.secret_key에 FLAG가 들어있다고 되어있습니다. 아무래도 app.secret_key의 값을 화면에 출력시키면 FLAG를 얻을 수 있을 것 같습니다. (+ app.secret_key에 들어있는 정보들을 보려면 URL 뒤에 /{{config}}를 삽입하면 됩니다.) 이번 문제는 점수에 비해 좀 많이 헤맨 것 같습니다. flask 지식이 빈약해서 그런 것 같네요....ㅎ
2021.11.17 -
image-storage 풀이
Image Storage Home List Upload 파일 업로드 맨 마지막 코드는 upload.php인데 사진으로 첨부하기엔 좀 길어서 코드 블록으로 첨부해봤습니다. upload 페이지에서 웹쉘 취약점이 터지는 형식 인 것 같습니다. upload.php에서 php 코드 부분을 보니 별다른 필터링은 하지 않고 있습니다. 문제에서 FLAG는 /flag.txt에 있다고 했으니까 경로로 이동해서 FLAG를 획득하도록 하는 php 코드를 작성하겠습니다.
2021.11.17 -
rev-basic-7 풀이
이번 문제는 주어진 배열의 길이도 짧고 다 좋은데, __ROL1__이라는 것이 코드에 있습니다. 아무래도 맥락상 알고리즘이나 암호화 같은데.... 구글링을 한 번 해보겠습니다. https://namu.wiki/w/LEA [LEA - 나무 위키] 한 줄 요약 -> ROL은 왼쪽 방향 쉬프트 연산이다 [if문 조건식] i^__ROL1__(flag[i], i&7) != arr[i] ROL이 무엇인지도 알았으니 이제 역연산 코드를 짤 수 있을 것 같습니다. 이번에도 브루트 포스 방식으로 if문 조건식을 구현하면 될 듯합니다. #include #include using namespace std; int w; int arr[32]={0x52,0xDF,0xB3,0x60,0xF1,0x8B,0x1C,0xB5,0x57,0..
2021.11.10 -
C++ Pac-Man | 1~2일차 | 메인화면 & 로딩창 & 맵 구현
#include #include #include #include #include #include using namespace std; /* 1 : 채도 낮은 파랑색 2 : 채도 낮은 녹색 3 : 채도 낮은 하늘색 4 : 채도 낮은 빨간색 5 : 채도 낮은 분홍색 6 : 채도 낮은 노란색 7 : 연회색 8 : 회색 9 : 파랑색 10 : 초록색 11 : 하늘색 12 : 빨간색 13 : 분홍색 14 : 노랑색 15 : 흰색 */ int x, y; int map[24][98]={ {1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5..
2021.11.09 -
rev-basic-6 풀이
sub_140001000()에 있는 조건식을 보기 편하게 정리해서 써보겠습니다. byte_140003000을 arr, byte_140003020을 brr, 사용자가 입력한 배열을 flag라고 정의하겠습니다. [if문 조건식] brr[flag[i]]!=arr[i] 저 if문을 다 통과하면 Correct가 출력되므로, 저 조건식을 피해 가는 경우를 계산하면 되겠습니다. brr의 인자 수가 너무 많으니 브루트포싱으로 돌려가며 푸는 게 좋을 듯합니다. (+ 변수 하나를 생성해서 인덱스를 세어주도록 하면 될 것 같기도....) #include #include using namespace std; int arr[]={0x00, 0x4D, 0x51, 0x50, 0xEF, 0xFB, 0xC3, 0xCF, 0x92, 0..
2021.11.03 -
rev-basic-5 풀이
rev-basic-4 문제에서 그랬던 것처럼 byte_140003000안에 들어있는 16진수들로 char형 배열을 만들어줍니다. 그리고 sub_140001000() 함수의 if문 조건식을 보겠습니다. 저번 문제와 동일하게 조건식을 통과하면 Correct 판정이 되는 형식입니다. 이번 문제는 바로 식이 나오지 않아서 직접 배열을 그려가며 풀었습니다 5 4 8 3 2 1 위와 같은 배열이 있을 때 각 배열의 값은 아래와 같을 것입니다. (맨 마지막 인덱스는 0) 1=a[5]+0 2=a[4]+a[5] 3=a[3]+a[4] 8=a[2]+a[3] 4=a[1]+a[2] 5=a[0]+a[1] 이렇게 됐을 때 뒤부터 차례대로 계산을 하게 되면 사용자가 입력한 배열인 a를 알 수 있게 됩니다. 주어진 Hex로 예시를 들..
2021.11.03