일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lordofsqlinjection
- 운영체제
- 시스템프로그래밍
- ubuntu
- web
- crosssitescripting
- WebHacking
- ctf
- Linux
- SQL Injection
- 화이트햇콘테스트
- webhacking.kr
- webhackingkr
- CODEGATE
- SQL
- 시스템
- CCE
- 프로세스
- 상호배제
- XSS
- 웹해킹
- Python
- 알고리즘
- sqli
- 해킹
- SQLInjection
- Los
- rubiya
- Writeup
- hacking
- Today
- Total
목록SQLInjection (6)
One_Blog
소스코드는 다음과 같다. 천천히 코드를 분석해보자면, id와 pw를 사용자로부터 넘겨받고, '가 입력되면 필터링한다. 그리고 id와 pw값을 SQL Query문에 집어넣고, Query문에 대한 값이 존재하면 문제를 클리어 시켜준다. 처음에 문제를 마주했을 땐, 이게 왜 어려운거지?라는 생각을 했는데.... 곰곰히 생각해보니 어떻게 풀어야할지 감이 오질 않았다. 분명 어려운 문제는 아닌 거 같은데...라고 멍 때리며 문제 풀이법을 생각하던 중, 기적같이 \가 떠올랐다. \를 사용하면 Query문에 있는 '를 SQL의 특수기호가 아닌 그저 하나의 문자로 만들 수 있기에, '없이도 SQLi를 성공시킬 수 있을 거라 믿었다. id값에 \를 줌으로써 ' and pw=부분을 Query문이 아닌 문장으로써 인..
소스코드는 다음과 같다. Query문의 결과가 1234가 나오면 문제가 풀린다. 그런데 Query를 보니, SELECT 1234 fromprob_giant where 1 인데, 해당 Query문은 아무 값을 집어넣지 않아도 1234를 결과값으로 불러오게 된다. 그러나 from 과 prob_giant가 띄어쓰기 없이 붙어있어서 제대로 Query문이 작동하지 않는다. 우리는 여기서 from과 prob_giant 사이에 문자열을 집어넣을 수 있다. 문제를 풀기 위해선 from과 prob_giant 사이에 공백을 집어넣어야 하는데, 필터가 대부분의 공백을 막고 있다. white space, \n, \r, \t , / 등등 대부분 공백 필터링에 사용할 수 있는 문자가 필터링 되어있다. 하지만 우리에겐 %를 이용한..
소스코드는 다음과 같다. and, or , substr등을 가볍게 필터링하고 있는데, 연산자와 mysql문법을 활용하여 가볍게 우회해주면 될 것 같다. and = && or = || substr = mid로 우회하여 blind sqli 페이로드를 구성하였다. ' || id like 'admin' && length(pw) like 1~? # 해당 페이로드를 활용하여 패스워드의 비밀번호를 구해보았다. 패스워드가 8일 때 admin계정에 로그인을 성공한 것을 확인할 수 있다. 따라서 패스워드의 길이는 8이다. 그럼 이제 패스워드를 구할 차례이다. ' || id like 'admin' && ascii(mid(pw, 1, 1)) > 60 해당 페이로드를 활용하여 패스워드를 한자리씩 구하면 된다. admin으로 로..
내가 이전에 풀었던 los - skeleton문제를 chatGPT에게 맡겨보았다. 하아.. 내심 못풀기를 기대했지만... 코드 분석과 더불어 Payload까지 완벽하게 짜주었다... 허허.. 실제로 pw에 해당 값을 넣어서 문제가 풀리는 지 확인해보았다.. 화가 나지만 문제가 잘 풀린다. 곧 있으면 해킹 업계도 AI에게 일자리를 모두 빼앗길 것 같다... AI한테 자리를 뺏기면, 내가 할 수 있는 건 2차 러다이트 운동밖에 없는 것 같다. AI가 발전하는 건 좋지만, 사람들 일자리 다 빼앗길 것 같아서 무섭다... 글 읽어주셔서 감사합니다.