일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- webhackingkr
- SQLInjection
- crosssitescripting
- Writeup
- 상호배제
- php
- Linux
- hacking
- XSS
- web
- 코드게이트2023
- 운영체제
- rubiya
- 웹해킹
- webhacking.kr
- WebHacking
- Python
- 시스템
- 시스템프로그래밍
- ubuntu
- MySQL
- sqli
- Los
- 프로세스
- ctf
- SQL
- lordofsqlinjection
- SQL Injection
- 해킹
- 알고리즘
- Today
- Total
목록webhacking.kr (4)
One_Blog
보면 file이라는 파라미터를 통해 파일을 불러와주고 있다. 그리고 hello만 썼음에도 불구하고 hello.php 파일을 가져오는 것으로 보아, 딱봐도 ?file로 보낸 값에 .php를 붙여주는 것 같았다. 한마디로 lfi 취약점은 터지는데, .php 때문에 원하는 파일을 읽지 못하는 상황인 것이다. 이럴 때는 php filter wrapper라는 아주 좋은 친구가 있다. https://book.hacktricks.xyz/pentesting-web/file-inclusion/lfi2rce-via-php-filters LFI2RCE via PHP Filters - HackTricks $convs = array('437', '500', '500V1', '850', '851', '852', '855', '8..
일단 ㅋㅋ 정석 분석과 편법을 이용한 풀이가 있다. 편법을 이용한 풀이부터 하도록 하겠다. 코드를 보면 이런식으로 파일의 타입과 이름을 가지고 검사를 하기에, 이전에 사용한 타입만 바꿔서 업로드 하는 방법으로는 풀이가 어렵다. 하지만 아직 우리가 이용할 수 있는 게 남아있다. 사람들이 올린 파일이 ./upload에 업로드되고, 사용된 파일이 서버에서 삭제되지 않는다는 점이다. 솔버가 33명이나 있는 문제이니, 누구 한명 쯤은 shell.php, webshell.php, cat.php, cmd.php와 같은 이름으로 파일을 올렸을 것이라고 예상했고, 실제로 shell.php를 불러오니 어떤 파일이 하나 불러와졌다. 얼핏보면 난잡해보이지만, 아마 우회를 위해 추가적인 데이터를 넣다가 이런 난잡한 파일이 되었..
문제가 일단 상당히 당황스럽다. 처음 접속하면 이상한 해쉬값만 보여준다. 일단 대강 분석해보자면.. sleep 함수는 브포 방지, if문은 솔브를 확인하는 것같은데.. key를 인자값으로 받는다. 이때 key가 $_SESSION['chall4']랑 같아야 한다. $_SESSION['chall4']값은 확인이 안되는데, 값을 생성하는 과정은 확인이 된다. 대충 1000000~9999999 사이에서 수 하나 고른 후, "salt_for_you"라는 문자열과 합친 후 sha1을 500번 돌려서 값을 만들어낸다. 처음엔 sha1 hash collision과 같은 부류로 접근하는 문젠가 싶었는데.. 라이트업 찾아보니 그냥 무지성으로 레인보우 테이블 만들어서 값을 찾는 문제였다. 아니...1000000~999999..
오늘은 오랜만에 워게임 풀이를 하겠습니당. 문제에 처음 접속하게 되면, 다음과 같이 노노그램을 푸는 화면이 나옵니다. 좀 뜬금 없지만.. 빠르게 풀고 solve를 눌러줍니다. solve를 누르고 다음화면으로 넘어가니 사용자의 입력을 받는 칸이 나오네요. 아무 값이나 입력하고 전송해줍시다. 제가 입력한 값과 answer이라는 변수와 제 ip가 응답으로 날아오네요. answer은 대체 뭔지를 몰라서 10진수 , 16진수 , ASCII 등등 별걸로 다 변환을 해봤지만 딱히 의미가 없는 문자열 같았습니다... 아무 요청을 날리던 answer값은 매번 같더라구요. 그래서 값을 보내는 곳의 소스 코드를 뜯어봤습니다. 소스코드를 보니 hidden value로 answer 값을 보내는 거였군요... value값을 좀 ..