write-ups/websec.fr

websec.fr level11 write up

ch4n3 2018. 7. 10. 12:28



레드벨벳 아이린


 해당 문제의 힌트로 AS 가 주어졌는데 코드를 보면 as 가 필터링되어 있는 것을 알 수 있다. 


    /* Rock-solid too! */
    
$special1 = ["!""\"""#""$""%""&""'""*""+""-"];
    
$special2 = [".""/"":"";""<""="">""?""@""[""\\""]"];
    
$special3 = ["^""_""`""{""|""}"];
    
$sql = ["union""0""join""as"];
    
$blacklist array_merge ($special1$special2$special3$sql);


 근데 MySQL에서와 마찬가지로 Alias function은 as 라는 특정 키워드가 없어도 적용할 수 있기 때문에, 우리는 이것을 우회할 수 있다. 


select id a, password b from table 

이런 식으로 우회가 가능하다는 것이다. 


또, 우리는 $table 값을 조작할 수 있기 때문에 Sub-query function을 이용해서 table의 내용을 임의로 바꿀 수 있다. 


[*] exploit code : https://github.com/ch4n3-yoon/write-ups/blob/master/websec.fr/level11/exploit.py