해당 문제는 로컬파일을 도커에 올려 풀이를 진행하였다. 해당 문제 소스부분이다. KU-CTF 중 ForceLogin1 문제와 매우 유사하지만 table항목이 추가적으로 있다는 점을 알 수 있다. 그리고 banlist도 약간 다르다는 것도 알 수 있다. source 부분 중에서도 table 항목에서 sql injection을 해야한다고 생각을 들었다. 그리고 출제자가 mssql이라는 것을 힌트를 얻어 문제를 풀어 보겠다. MS SQL 공식 문서를 이용해 찾던 중 위와 같은 구문이 있다는 것을 알 수 있었다. 그래서 위와 같은 형식을 이용해보기로 했다. (values (admin,1)+as+MyTable(id,password)&id=admin&pass=1이라는 구문을 얻을 수 있었다. 그리고 저번 1번 문제..
해당 문제는 로컬파일을 도커에 올려 풀이를 진행하였다. 해당 문제 소스부분이다. 화면을 보면 banlist에 많은 내용들이 들어가있는 것을 알 수 있었다. source 부분 중에서도 id 항목에서 admin을 입력을 하고 password 부분에서 sql injection을 해야한다고 생각을 들었다. 그리고 출제자가 mysql이라는 것을 힌트를 얻어 문제를 풀어 보겠다. guest로 시도했더니 다음과 같은 플래그를 얻을 수 있었다. MYSQL 공식 문서를 이용해 찾던 중 위와 같은 구문이 있다는 것을 알 수 있었다. 그래서 위와 같은 형식을 이용해보기로 했다. sql test 사이트를 이용해 여러 구문들을 시도한 끝에 /loginAction?id=\&pass=UNION VALUES ROW(admin)#이라..
해당 문제는 로컬파일을 도커를 통해 작성하였다. 1. cmd 명령어를 5글자 이상 입력하면 되지 않는 것을 알 수 있다. 2. string.puctuation이라는 것이 있게 된다면 안된다는 것도 알 수 있다. 3. 마지막으로 banlist 항목이 들어가면 안된다는 것을 알 수 있다. python의 puncatuation을 보았더니 많은 특수기호가 포함되어 있는 것을 확인하였다. http://localhost:5005/execute?cmd=>ls localhost:5005/execute?cmd= ls 다음과 같은 명령어를 입력하면 ls 명령어를 입력했을 때 ls명령어가 들어가있는 것을 확인할 수 있었다. wildcard를 사용하여 다음과 같은 명령어를 입력하면 결과를 얻을 수 있다. 별표를 ls로 대체하..
해당 문제는 로컬파일을 도커에 올려 풀이를 진행하겠다. 해당 문제 소스부분이다. /source 부분중에 해당 부분을 보면 ping을 보내는 시스템 명령어가 있는 것을 알 수 있다. 그리고 이 구문의 형식을 맞춰준다면 시스템 명령어는 정상적으로 실행 될거라고 예상할 수 있다. 하지만 ip값을 정상적으로 입력함에도 불구하고 정상적으로 실행되지 않았다. /source를 다시보니 위 부분에서 명령어를 실행할 때, 띄어쓰기를 해야하는 것을 알 수 있었다. 만약 ip에 ls의 값을 준다면 시스템 명령어는 cd /app/mypinguser/"dir"+ && ping -c 2ls).read()식으로 전송하기 때문에 ls 명령어가 실행되지 않을 것이다. 그렇기에 띄어쓰기를 입력하기 위해 인코딩인 %20을 입력하고 pin..
KU-CTF 대회하면서 Master Moon의 출제로, 해당 문제풀이 환경은 Docker로 구성되어있다. 해당 NewAPI 문제를 접속하면 나오는 첫 화면이다. 보는 것과 같이 ID와 Password 외에는 정보가 없다. 해당 화면을 Fiddler를 사용해 소스를 확인했다. 응답값을 보니 server:uvicorn이라는 것을 확인했다. uvicorn에 대해 알아보니 FastAPI 프레임워크를 사용한다고 한다. 그리고 Default로 /docs와 /redoc이라는 옵션이 있다는 것을 알아냈다. /redoc에 접근하니 다음과 같은 화면을 확인할 수 있었다. /redoc 화면 중에서 오른쪽 화면에서는 존재하는 URL이 있음을 확인했다. 접속 가능한 URL 중 loginAction에 접속해보니 허가되지 않은 것..
컴퓨터에서 특정 명령어로 명령을 내릴 때, 여러 파일을 한꺼번에 처리할 목적으로 사용하는 문자열 기호를 가리킨다. 리눅스에서는 파일을 검색하거나 다른 작업을 수행하기 위해 와일드카드를 사용할 수 있다. 여기서 와일드카드란 특정한 문자 패턴을 기반으로 문자열을 대체하여 파일을 찾는 기능이다. 아래는 리눅스에서 자주 사용되는 와일드카드 기호들이다. * : 0개 이상의 문자와 일치합니다. ? : 한 개의 문자와 일치합니다. [] : 대괄호 안에 있는 문자 중 하나와 일치합니다. [!] : 대괄호 안에 있는 문자를 제외한 다른 문자 중 하나와 일치합니다. {} : 중괄호 안에 있는 문자열 중 하나와 일치합니다. 예를 들어, ls *.txt 는 현재 디렉토리에서 확장자가 .txt 인 파일들을 나열합니다. 또한, ..
OS Injection악의적인 사용자가 시스템에 액세스하여 실행되는 애플리케이션의 취약점을 이용하여 운영 체제(OS)에 악성 코드를 삽입하는 공격 기술이다.사용자 입력을 통해 악성 코드를 삽입하거나 시스템을 해킹하거나 제어하는 데 사용된다.SQL Injection 공격에서는 데이터베이스에 쿼리를 삽입하여 데이터를 탈취하거나 조작하는 것이 가능하다.OS Injection에서는 시스템 자원에 대한 액세스 권한을 획득하여 다양한 악성 행위를 수행할 수 있다. 매우 위험한 공격 기술로서, 시스템 보안에 매우 큰 위협을 끼친다. 따라서 시스템 보안 강화를 위해 취약점을 해결하고, 보안 업데이트를 정기적으로 적용하는 것이 중요하다. OS Injection 식별한 경우 몇 가지 초기 명령을 실행하여 손상된 시스템에 ..