일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- XSS
- 프로세스
- Los
- ctf
- 알고리즘
- CCE
- SQL
- Linux
- 시스템프로그래밍
- lordofsqlinjection
- 운영체제
- hacking
- web
- 웹해킹
- ubuntu
- SQL Injection
- Python
- crosssitescripting
- CODEGATE
- sqli
- SQLInjection
- webhacking.kr
- 시스템
- 상호배제
- Writeup
- WebHacking
- rubiya
- 화이트햇콘테스트
- 해킹
- webhackingkr
- Today
- Total
목록분류 전체보기 (79)
One_Blog
일단 ㅋㅋ 정석 분석과 편법을 이용한 풀이가 있다. 편법을 이용한 풀이부터 하도록 하겠다. 코드를 보면 이런식으로 파일의 타입과 이름을 가지고 검사를 하기에, 이전에 사용한 타입만 바꿔서 업로드 하는 방법으로는 풀이가 어렵다. 하지만 아직 우리가 이용할 수 있는 게 남아있다. 사람들이 올린 파일이 ./upload에 업로드되고, 사용된 파일이 서버에서 삭제되지 않는다는 점이다. 솔버가 33명이나 있는 문제이니, 누구 한명 쯤은 shell.php, webshell.php, cat.php, cmd.php와 같은 이름으로 파일을 올렸을 것이라고 예상했고, 실제로 shell.php를 불러오니 어떤 파일이 하나 불러와졌다. 얼핏보면 난잡해보이지만, 아마 우회를 위해 추가적인 데이터를 넣다가 이런 난잡한 파일이 되었..
child toctou 라이트업이다. 이전의 baby toctou와 다르게 이상한 여러 검증 절차가 추가되었다. 이런식으로, HOST를 검사하여 HOST가 webhacking.kr이 아니고, HOST를 dns reolve했을 때 결괏값이 202.182.106.159가 아니라면 그냥 아무것도 실행을 안해버린다. 그리고 만약 HOST 검증을 통과하면, curl로 http://HOST:10020/cmd/{$_GET['q']}.txt를 한 후에, response값을 system으로 실행하고 결과를 알려준다. baby toctou는 단순 문자열 검증이었기에, 동시에 cat flag.php와 ls를 보냄으로써 해결할 수 있었다. 하지만 여기서는 다르다. DNS REBINDING이라는 공격기법을 써야한다. DNS R..
문제가 일단 상당히 당황스럽다. 처음 접속하면 이상한 해쉬값만 보여준다. 일단 대강 분석해보자면.. sleep 함수는 브포 방지, if문은 솔브를 확인하는 것같은데.. key를 인자값으로 받는다. 이때 key가 $_SESSION['chall4']랑 같아야 한다. $_SESSION['chall4']값은 확인이 안되는데, 값을 생성하는 과정은 확인이 된다. 대충 1000000~9999999 사이에서 수 하나 고른 후, "salt_for_you"라는 문자열과 합친 후 sha1을 500번 돌려서 값을 만들어낸다. 처음엔 sha1 hash collision과 같은 부류로 접근하는 문젠가 싶었는데.. 라이트업 찾아보니 그냥 무지성으로 레인보우 테이블 만들어서 값을 찾는 문제였다. 아니...1000000~999999..
import pandas as pd import requests from bs4 import BeautifulSoup import time import json from concurrent.futures import ThreadPoolExecutor from urllib.parse import urlparse, parse_qs import matplotlib.pyplot as plt from matplotlib import rc import seaborn as sns import re from wordcloud import WordCloud rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False start_time = tim..