336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
문제 이름 : orge
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
<?php
include "./config.php";
login_chk();
dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");
$query = "select id from prob_orge where id='guest' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysql_fetch_array(mysql_query($query));
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
$_GET[pw] = addslashes($_GET[pw]);
$query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'";
$result = @mysql_fetch_array(mysql_query($query));
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge");
highlight_file(__FILE__);
?> |
cs |
admin의 pw값을 알아내는것을 보니 위문제는 블라인드 인젝션문제이다.
지금까지 자기힘으로 이문제를 풀어왔다면 이문제는 어렵지않을것이다.
필터링에보면 or과and만 필터링하게된다
바로 이전문제인 darkelf(다크엘프)문제를 해결하였다면
블라인드 인젝션을 결합하면 오거문제를 쉽게풀수있다.
---------------------------------
포스팅을쓰면서 문제를 다시푸는중이다 이전에 푼문제들의 키값을 적어두거나 프로그램을 만들어서 했던게아니라
귀찮더라도 다시한번 풀어서 포스팅한다...
그래서 덕분에 잠이오게되었다.
다음에 쉬는날이나 오늘처럼 일하고 피곤하지않으면 몆개씩 써보겟다.