Web Security

Web Security

KU-CTF ForceLogin2

해당 문제는 로컬파일을 도커에 올려 풀이를 진행하였다. 해당 문제 소스부분이다. KU-CTF 중 ForceLogin1 문제와 매우 유사하지만 table항목이 추가적으로 있다는 점을 알 수 있다. 그리고 banlist도 약간 다르다는 것도 알 수 있다. source 부분 중에서도 table 항목에서 sql injection을 해야한다고 생각을 들었다. 그리고 출제자가 mssql이라는 것을 힌트를 얻어 문제를 풀어 보겠다. MS SQL 공식 문서를 이용해 찾던 중 위와 같은 구문이 있다는 것을 알 수 있었다. 그래서 위와 같은 형식을 이용해보기로 했다. (values (admin,1)+as+MyTable(id,password)&id=admin&pass=1이라는 구문을 얻을 수 있었다. 그리고 저번 1번 문제..

Web Security

KU-CTF ForceLogin1

해당 문제는 로컬파일을 도커에 올려 풀이를 진행하였다. 해당 문제 소스부분이다. 화면을 보면 banlist에 많은 내용들이 들어가있는 것을 알 수 있었다. source 부분 중에서도 id 항목에서 admin을 입력을 하고 password 부분에서 sql injection을 해야한다고 생각을 들었다. 그리고 출제자가 mysql이라는 것을 힌트를 얻어 문제를 풀어 보겠다. guest로 시도했더니 다음과 같은 플래그를 얻을 수 있었다. MYSQL 공식 문서를 이용해 찾던 중 위와 같은 구문이 있다는 것을 알 수 있었다. 그래서 위와 같은 형식을 이용해보기로 했다. sql test 사이트를 이용해 여러 구문들을 시도한 끝에 /loginAction?id=\&pass=UNION VALUES ROW(admin)#이라..

Web Security

KU-CTF ForceLength

해당 문제는 로컬파일을 도커를 통해 작성하였다. 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로 대체하..

Web Security

KU-CTF PingService

해당 문제는 로컬파일을 도커에 올려 풀이를 진행하겠다. 해당 문제 소스부분이다. /source 부분중에 해당 부분을 보면 ping을 보내는 시스템 명령어가 있는 것을 알 수 있다. 그리고 이 구문의 형식을 맞춰준다면 시스템 명령어는 정상적으로 실행 될거라고 예상할 수 있다. 하지만 ip값을 정상적으로 입력함에도 불구하고 정상적으로 실행되지 않았다. /source를 다시보니 위 부분에서 명령어를 실행할 때, 띄어쓰기를 해야하는 것을 알 수 있었다. 만약 ip에 ls의 값을 준다면 시스템 명령어는 cd /app/mypinguser/"dir"+ && ping -c 2ls).read()식으로 전송하기 때문에 ls 명령어가 실행되지 않을 것이다. 그렇기에 띄어쓰기를 입력하기 위해 인코딩인 %20을 입력하고 pin..

Web Security

KU-CTF newapi

KU-CTF 대회하면서 Master Moon의 출제로, 해당 문제풀이 환경은 Docker로 구성되어있다. 해당 NewAPI 문제를 접속하면 나오는 첫 화면이다. 보는 것과 같이 ID와 Password 외에는 정보가 없다. 해당 화면을 Fiddler를 사용해 소스를 확인했다. 응답값을 보니 server:uvicorn이라는 것을 확인했다. uvicorn에 대해 알아보니 FastAPI 프레임워크를 사용한다고 한다. 그리고 Default로 /docs와 /redoc이라는 옵션이 있다는 것을 알아냈다. /redoc에 접근하니 다음과 같은 화면을 확인할 수 있었다. /redoc 화면 중에서 오른쪽 화면에서는 존재하는 URL이 있음을 확인했다. 접속 가능한 URL 중 loginAction에 접속해보니 허가되지 않은 것..

Web Security

Linux Wildcard란?

컴퓨터에서 특정 명령어로 명령을 내릴 때, 여러 파일을 한꺼번에 처리할 목적으로 사용하는 문자열 기호를 가리킨다. 리눅스에서는 파일을 검색하거나 다른 작업을 수행하기 위해 와일드카드를 사용할 수 있다. 여기서 와일드카드란 특정한 문자 패턴을 기반으로 문자열을 대체하여 파일을 찾는 기능이다. 아래는 리눅스에서 자주 사용되는 와일드카드 기호들이다. * : 0개 이상의 문자와 일치합니다. ? : 한 개의 문자와 일치합니다. [] : 대괄호 안에 있는 문자 중 하나와 일치합니다. [!] : 대괄호 안에 있는 문자를 제외한 다른 문자 중 하나와 일치합니다. {} : 중괄호 안에 있는 문자열 중 하나와 일치합니다. 예를 들어, ls *.txt 는 현재 디렉토리에서 확장자가 .txt 인 파일들을 나열합니다. 또한, ..

Web Security

OS Injection란?

OS Injection악의적인 사용자가 시스템에 액세스하여 실행되는 애플리케이션의 취약점을 이용하여 운영 체제(OS)에 악성 코드를 삽입하는 공격 기술이다.사용자 입력을 통해 악성 코드를 삽입하거나 시스템을 해킹하거나 제어하는 데 사용된다.SQL Injection 공격에서는 데이터베이스에 쿼리를 삽입하여 데이터를 탈취하거나 조작하는 것이 가능하다.OS Injection에서는 시스템 자원에 대한 액세스 권한을 획득하여 다양한 악성 행위를 수행할 수 있다. 매우 위험한 공격 기술로서, 시스템 보안에 매우 큰 위협을 끼친다. 따라서 시스템 보안 강화를 위해 취약점을 해결하고, 보안 업데이트를 정기적으로 적용하는 것이 중요하다. OS Injection 식별한 경우 몇 가지 초기 명령을 실행하여 손상된 시스템에 ..

junnybottle
'Web Security' 카테고리의 글 목록