본문 바로가기

[LOB]02 COBOLT cobolt +) sfp, ebp 개념 혼동하여 작성함. 나중에 수정할 수도 있고 이전 문제에서 얻은 비밀번호로 다음 문제를 풀어보자. 디렉터리를 확인해보자. cobolt.c는 gremlin.c와 거의 동일하지만 buffer의 크기가 다르다. 이전과는 달리 풀어야 할 것 같다. 이전과 같이 쉘에 바로 코드를 삽입하면 쉘코드가 버퍼를 오버하여 저장하는데 그럼 strcpy 함수가 끝난 후 ret을 통해 main함수로 돌아가는 데 쉘코드가 삽입되기 때문이다. ret에는 쉘코드가 아니라 쉘코드가 시작하기 전의 위치의 주소가 들어가야 한다. 가장 먼저 생각 난 방법은 환경변수에 쉘코드를 넣은다음 ret에 환경변수의 주소를 넣는 방법이다. 1. 환경변수에 쉘코드를 넣는다 2. ret에게 환경변수의 주소를 넣으면 쉘..
[LOB]01 GREMLIN gremlin +) sfp, ebp 개념 혼동하여 작성함. 나중에 수정할 수도 있고 기본적인 설정을 마치고 문제를 풀어보기로 했다. login : gate / password : gate로 접속할 수 있다. 접속하면 gremlin.c와 그 실행파일이 있다. gremlin.c의 내용을 확인할 수 있다. 이제 한 번 문제를 해결해보자. gremlin을 실행시키면 권한이 허용되지 않았다는 말과 함께 실행되지 않는다. root 권한으로 실행하면 문제가 없다고 한다(출처) 권한을 다시 설정할 필요가 있다. tmp 디렉터리를 만들어 gremlin을 새로 생성했다. 이제 파일은 내 소유이므로 실행가능하다. 여기는 c 코드가 있어 확인할 필요는 없는데 어셈블리어에 익숙해질 겸 한 번 해보았다. 어셈블리 코드 push ..
[JAVA]접근자/설정자 메소드도 상속될까? 자바 공부하면서 의문이 생겼다. 자식 클래스도 부모의 접근자 메소드를 상속 받을까? 그래서 실험해 보았다. 준비물 부모 클래스 public class Person { private String name; // private로 설정하면 name에는 접근자/설정자 메소드만 접근할 수 있다. public Person (String n) { // 생성자 정의 name = n; } public String getName() {return name;} // 부모 접근자 메소드 public void setName(String name) {this.name = name;} // 부모 설정자 메소드 } 자식 클래스 class Customer extends Person { private String id; public C..
[XXE]를 위한 속성 XML 공부 모든 포스트 목록 XXE (XML External Entity) injection XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 external entity를 사용하여 서버의 로컬파일 열람, DoS(denial of service) 등을 유발할 수 있는 취약점으로 XML Request를 파싱하는 페이지에서 발생한다. +) URI : 인터넷에 있는 자원을 나타내는 유일한 주소로, URL과 URN으로 구성된다. XML언어와 DTD에 포함된 exeternal entity를 공부해보자 XML XML XML(Extensible MArkup Language)은 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다. 다른 종류의 시스템, 특히 인터넷에 연결된 ..
XXE 문제 보호되어 있는 글입니다.
[C]자료형과 printf, scanf 서식 정리 맨날 까먹어서 인터넷 뒤지길래 정리함 1. 자료형 정리 정수형char1바이트-128 이상 +127 이하 unsigned char0 이상 (128+127) 이하 short2바이트-32,768 이상 +32,767 이하 unsigned short0 이상 (32,768+32,767) 이하 int4바이트-2,147,483,648 이상 +2,147,483,647 이하 unsigned int0 이상 (2,147,483,648+2,147,483,647) 이하 long4바이트-2,147,483,648 이상 +2,147,483,647 이하 unsigned long0 이상 (2,147,483,648+2,147,483,647) 이하 long long4바이트-9,223,372,036,854,775,808 이상 +9,223,37..
[SWEA]8338 계산기 논리적으로 맞고 이와 비슷한 코드가 성공한 걸 봤는데 이건 항상 런타임 에러가 발생한다 #include int main(void) { int test_case, T; int sum, n; int arr[10]; setbuf(stdout, NULL); scanf("%d", &T); for (test_case = 1; test_case
[suninatas]challenges 05 모든 포스트 목록 challenges 05 5번 문제 소스를 확인하면 충격적인 비주얼의 eval 함수와 hint를 확인할 수 있다. 처음에는 eval 함수를 해석해보려 했는데 너무 어려웠다. 찾아보니까 자바스크립트를 읽기 어렵게 만드는 기법이 있다는 것을 알았다. 복호화 사이트에서 복호화하니 다음의 깔끔한 코드가 나왔다. 개발자 도구를 이용해서 hint 값을 넣었다. 문제 해결! +) 자바스크립트 난독화 클라이언트에서 확인할 수 있는 자바스크립트 코드를 읽을 수 없게 암호화하는 것 이 사이트에서 다양한 난독화 기법을 확인할 수 있다.