当前位置: 首页 > news >正文

鞍山外国网站制作/保定seo推广外包

鞍山外国网站制作,保定seo推广外包,万户网站建设,免费做海报的app0x00 背景看了之前Gr36_前辈在先知上的议题,其中有提到排序注入,这个在最近经常遇到这样的问题,所以先总结下order by 排序注入的知识。0x01 环境信息测试环境:操作系统ubuntu0.14.04.1 MYSQL:5.5.55-0测试代码&#x…

0x00 背景

看了之前Gr36_前辈在先知上的议题,其中有提到排序注入,这个在最近经常遇到这样的问题,所以先总结下order by 排序注入的知识。

0x01 环境信息

测试环境:操作系统ubuntu0.14.04.1 MYSQL:5.5.55-0

测试代码:

$mysql_server="10.10.10.136";

$mysql_username="root";

$mysql_userpass="xxxxx";

$mysql_select_db="test";

$config=mysql_connect($mysql_server,$mysql_username,$mysql_userpass)or die (mysql_error());

$db=mysql_select_db($mysql_select_db)or die (mysql_error());

if( isset( $_REQUEST[ 'evil' ]) ) {

$evil = $_REQUEST[ 'evil' ];

$query  = "select * from test order by user_id $evil;";

//$query  = "(select * from test order by user_id $evil);";

$result = mysql_query( $query,$config) or die( $query.'

' . mysql_error() . '
');

$num = mysql_numrows( $result );

$i   = 0;

while( $i < $num ) {

$user_id = mysql_result( $result, $i, "user_id" );

$user = mysql_result( $result, $i, "user" );

$password  = mysql_result( $result, $i, "password" );

$html .= "

user_id: {$user_id} user: {$user} password: {$password}
";

$i++;

}

mysql_close();

echo $query;

echo $html;

}

?>

0x02 注入方法介绍

正常页面:

24b216a338a9c49f67c2be3703105642.png

1.order by 与 报错注入:

当页面会展示出MYSQL的错误信息时,可以使用报错注入。

?evil=and(updatexml(1,concat(0x7e,(select user())),0))

97135fcc459d76b1dba67ce19abad973.png

2.order by 与 盲注:

当页面并没有展示MYSQL的错误信息时,且只能根据页面的回显数据的状态进行判断时,可使用布尔盲注。

《当然雨师傅也提到了可以使用时间盲注 select * from test order by user_id,(select 1 from (select sleep(3))a)》

这里使用位运算符的^(位异或),当然MySQL还有|(位或),&(位与),~(位取反),>>(位右移),<

^(位异或会将前后的数字转换成2进制然后进行异或。

因为正则进行匹配时,匹配到数据返回1(00000001)的时候,此时返回的1会和user_id中的数据的二进制进行异或,然后按照异或的结果升序排列,所以显示的排列会发生变化。

当正则进行匹配时,未匹配到数据返回0(00000000)的时候,任意数字和0异或的结果还是本身,所以user_id中的数据和0进行异或后排序是不变的。

因此,当页面排序紊乱时候则说明正则匹配到正确数据,页面排序未发生紊乱时则说明正则没有匹配到数据。

通过排列顺序的变化来判断返回的结果是否正确,这里的MYSQL版本是:5.5.55-0, 所以使用如下语句可以匹配到数据,因此排序发生变化了,这里'^5'也可以转换成^5的16进制,这样语句中就没了引号。

?evil=^(select (select version()) regexp '^5'), 正则返回结果为1,然后与user_id后面的值进行异或,得到如下结果。

排序前 排序后user_id user_id的二进制 正则(1)二进制 user_id^1 user_id user_id的二进制 正则(1)二进制 user_id^1

1 00000001 00000001 00000000 1 00000001 00000001 00000000

2 00000010 00000001 00000011 3 00000011 00000001 00000010

3 00000011 00000001 00000010 2 00000010 00000001 00000011

4 00000100 00000001 00000101 5 00000101 00000001 00000100

5 00000101 00000001 00000100 4 00000100 00000001 00000101

6 00000110 00000001 00000111 7 00000111 00000001 00000110

7 00000111 00000001 00000110 6 00000110 00000001 00000111

因为order by 默认是升序排列的,所以页面显示的是如下的效果:

b800706d7a8655d02fa8b520d1a56191.png

?evil=^(select (select version()) regexp '^aaaaaa') 未能匹配到数据,因此返回0。

当正则未匹配到数据时候返回的结果是0, 0和任意数字异或的结果都是数字本身,所以排序是不变的。

user_id user_id的二进制 正则(0)二进制 user_id^01 00000001 00000000 00000001

2 00000010 00000000 00000010

3 00000011 00000000 00000011

4 00000100 00000000 00000100

5 00000101 00000000 00000101

6 00000110 00000000 00000110

7 00000111 00000000 00000111

b849e3b866f5052f5b99c88f0e3cf435.png

3.order by 与union 查询:

当$query  = "select * from test order by user_id $evil;";没有使用括号包裹的时候,是无法直接使用union查询的。

当 $query  = "(select * from test order by user_id $evil);";使用括号进行包裹的时候,此时是可以进行union查询的。

这个在MySQL的官方文档上也有进行说明,文档中说道并把ORDER BY或LIMIT放到最后一个的后面,

经过测试MYSQL:5.5.55-0放在前面也是可以执行的。当然这种情况不大常见。

c707d7af8b96486ffccbd4e0d3587bab.png

e46857ec04ba6294bb496332981f9771.png

0x03 小小的总结

由于采用预编译执行SQL语句时传入的参数不能作为SQL语句,所以像order by xxx desc这里的排序规则还是只能用拼接,

因此order by后的注入或许能够成为后续漏洞挖掘重点关注的SQL注入点。

06c28bc5bb09fd61c4d71b3ac02a0ddc.png

http://www.lbrq.cn/news/1332415.html

相关文章:

  • 企业电话号码查询网站/南昌seo管理
  • 建设一家网站多少钱/福州seo招聘
  • WordPress分享到微博代码/seo关键词外包
  • 江西网站备案流程/推广运营
  • 舟山网站建设有限公司/最近一周的重大热点新闻
  • 网站做产品的审核工作怎么样/沈阳seo公司
  • 如何修改网站title/百度seo关键词
  • No物流网站建设/网站收录查询爱站
  • wordpress模板带后台/江苏搜索引擎优化
  • 做网站的集团/seo平台有哪些
  • 企业网站建设进什么科目核算/百度搜索资源平台提交
  • 网站建设 石景山/沈阳关键字优化公司
  • 简述建设一个网站的基本步骤/中国科技新闻网
  • 网站结构图怎么画/seo是如何优化
  • 郑州做网站哪个/万网官网域名查询
  • 百度58网络推广怎么做/提升神马seo关键词自然排名
  • 新手做网站怎么上传系统/成功的网络营销案例ppt
  • 猪八戒网站 怎么做兼职/广州百度seo优化排名
  • 在猪八戒网站如何做兼职/南宁百度快速优化
  • 怎么做转载小说网站/seo研究中心qq群
  • 网站建设优化一体/信息互联网推广
  • 网站加载很慢/怎样注册自己的网站
  • 哪个网站可以做英语语法题/云服务器
  • 视频网站建设的背景简介/外贸推广营销公司
  • 用华为云建立Wordpress网站/长沙网络营销公司排名
  • 电商网站开发的项目描述/百度指数app下载
  • 福田企业网站推广哪个好/济南市最新消息
  • 做校招的网站有哪些/友情手机站
  • 新零售网站建设/如何成为百度广告代理商
  • wordpress淘宝ued/惠州seo关键字优化
  • 【C++详解】用红黑树封装模拟实现mymap、myset
  • C# WPF本地Deepseek部署
  • 下一代防火墙技术
  • 人机交互:连接人类与数字世界的桥梁
  • damn the jvm again(2)
  • 使用Windbg分析多线程死锁项目实战问题分享