티스토리 뷰
1. 18번 메인화면
2. 소스코드인데 index.phps로 가봅시다.
3. index.phps 코드. 딱봐도 sql 인젝션이죠?
4. mysql_query와 mysql_fetch_array에 대한 설명입니다.
5. 이 코드는 challenge18_table 이라는 테이블을 제공해줬네요ㅋㅋ힌트라고 볼 수가 있습니다. 만약 테이블명이 없다면 테이블명을 알아내는 sql 인젝션을 해야해서 저의 수준에서는 아직 어려울 것 같습니다.
challenge18_table에서 id가 getst인 것을 불러와서 "hi guest"를 출력해주는 코드입니다.
6. $_GET[no] 값에 '1'을 입력해주면 'hi guest'가 뜨네요~ 흠.. 그러면 no 값이 숫자니까 0이나 2나 3이나 쭉 입력해보면 admin이라는 것을 유추할 수 있습니다.
7. no 값에는 다행히 숫자가 들어갈 공간이라서 ' 같은 조잡한 문자가 안 들어가도 되니 편합니다.
or 값은 한 쪽이 참이기만 하면 모두 참을 반환하기 때문에 왼쪽에 no값을 거짓으로 만들고, or 값으로 오른쪽에는 no=2 같은 숫자를 대입할 수 있습니다. 이렇게 되면 왼쪽은 거짓이되고 오른쪽은 참이 되기 때문에 or로 인해 no=2의 값을 불러들이게 되요. 결과적으로 select id from challenge18_table where id='guest' and no=123 or no=2 가 됩니다.
8. 하지만 소스코드에서 eregi로 $_GET[no] 값을 필터링 시켰네요. 필터링 값에 공백도 포함되어 있어서 공백을 따로 우회를 시켜야 합니다.
* 공백 우회가 가능한 문자의 종류
1. Tab : %09
2. Line Feed (\n): %0a
3. Carrage Return(wr) : %0d
4. 주석 : /**/
5. 괄호 : ()
6. 더하기 : +
위에서 입력한 no=123 or no = 2에서 공백이 2개가 있네요..
저는 2번의 공백 우회로 %0a로 대체해서 입력을 했습니다.
9. Clear
'Wargame > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 54번 문제 풀이 (0) | 2015.06.30 |
---|---|
Webhacking.kr 4번 문제 풀이 (0) | 2015.06.30 |
Webhacking.kr 16번 문제 풀이 (0) | 2015.06.30 |
Webhacking.kr 17번 문제 풀이 (0) | 2015.06.30 |
Webhacking.kr 15번 문제 풀이 (0) | 2015.06.30 |
- Total
- Today
- Yesterday
- malware
- koodous
- CVE-2018-9375
- 해킹메일
- AMSI
- 비트코인
- Kimsuky
- keylogger
- Bisonal
- Yara
- VirusBulletin
- MS-Office
- cuckoo-sandbox
- idapython
- 위협정보공유
- us-cert
- 멋쟁이사자처럼 4기
- Flybits
- infostealer
- 악성코드
- vuln
- CVE-2018-0798
- 스피어피싱
- 출처 : Do it 안드로이드 프로그래밍
- Static Analysis Engine
- .wll
- Decoding
- 한글악성코드
- Servey
- Cisco Talos
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |