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

南昌企业网站设计营商环境建设局网站

南昌企业网站设计,营商环境建设局网站,360网站挂马检测,wordpress 文章发布 编辑器一、原理#xff1a; 二次注入的关键在于攻击者的输入并不立即执行#xff0c;而是经过某些存储或处理后#xff0c;在后续某个步骤中再触发注入攻击 二、示例#xff1a; 2.1、sqli-labs-master/less-24#xff1a; admin# 第一次在网页注册账号和密码时没有漏洞#x…一、原理 二次注入的关键在于攻击者的输入并不立即执行而是经过某些存储或处理后在后续某个步骤中再触发注入攻击 二、示例 2.1、sqli-labs-master/less-24 admin# 第一次在网页注册账号和密码时没有漏洞但是我们将admin# 123456这样的用户名和密码注册到数据库 再进入修改界面修改该用户密码时我们注册的用户名中的特殊符号就起作用了因为在注册的时候 # 会被waf过滤转译但是存入数据库中的是 admin# 但是如果我们要修改时后端代码又会通过$session将数据库中的信息admin#拿出来而这个污染信息就会将数据库的搜索语句注释 所以我们修改的就是admin的密码也就是数据库管理员的密码 2.2、网鼎杯2018 Unfinish绕过 #用经验判断该网页有注册界面或者用扫描工具检测其有哪些目录我们会得到 /register.php #用注册后的账号密码登录后界面只显示我们的用户名所以只能从用户名下手#当我们注册用户名时发现有waf我们再用burpsuitefuzz字典后发现[, information ]等都被过滤了 所以后面在用户名上编写的payload语句就得想办法不使用这几个关键字从而绕过waf#此时我们先判断后端是怎样编写数据库插入信息语句的应该是 --先过滤 $username check_input($_POST[username]) --后插入 $insertINSERT INTO USERS(email,username,password) VALUES ($email,$username,$password)#官方payload email: testqq.com username: 0(select hex(hex(database())))0 password: 123456 两次hex转十六进制是确保转出来的都是数字只有数字和0相加才能得到其原本值但是两次转hex的字符串过长会被数据库用科学计数法处理这样又会丢失数据于是我们使用substr()函数将其分段从1 到 10截取出来这里为了避免写逗号使用了substr的另一种写法substr(string from start for end) username: 0(select substr(hex(hex(database()))from 1 for 10))0 通过这种方式我们就能得到主页面的用户名回显依次截取出的数据再将他们拼接在一起反转两次十六进制就能得到数据。 不过这里还有另一种写法不用hex处理的方式 username: 0ascii(substr(database() from 1 for 10))0 一般ctf答案的表名都在当前库其名称通常为flag所以下面两种解法应运而生 #第一种 0(select substr(hex(hex(select * from flag))from A for B))0#第二种 0ascii(substr((select * from flag) from A for B))0 2.3、网鼎杯2018 Comment 代码 ?php include mysql.php; session_start(); if($_SESSION[login] ! yes){header(Location: ./login.php);die(); } if(isset($_GET[do])){ switch ($_GET[do]) {//第一个case case write:$category addslashes($_POST[category]);$title addslashes($_POST[title]);$content addslashes($_POST[content]);$sql insert into boardset category $category,title $title,content $content;$result mysql_query($sql);header(Location: ./index.php);break;//第二个case case comment:$bo_id addslashes($_POST[bo_id]);$sql select category from board where id$bo_id;$result mysql_query($sql);$num mysql_num_rows($result);if($num0){$category mysql_fetch_array($result)[category];$content addslashes($_POST[content]);$sql insert into commentset category $category,content $content,bo_id $bo_id;$result mysql_query($sql);}header(Location: ./comment.php?id$bo_id);break; default:header(Location: ./index.php); } } else{header(Location: ./index.php); } ? 通过上述代码我们可以看到我们在第一个case中输入的值都被addslashes()处理过了那么在上面写一些注入语句显然是没有用的因为单引号被转译了。 不要灰心我们再看看第二个case首先如果用户要评论得先输入bo_id而bo_id也被addslashes()处理后再放入数据库查询语句中这里也不是注入点然后继续往下我们就发现了它“$category mysql_fetch_array($result)[category];”显然category这个值是直接从数据库中拿出来的并且没有被处理过然后直接放入下面的insert语句中了那我们就得想想能否在“category”上下功夫了显然这是个漏洞 #通过分析我们可以知道用户先在case write注册一些信息然后在用户评论时 也就是case comment数据库会抽出用户第一次注册的category并且没有对其做处理。 #结合对二次注入的理解那我们的注入思路不就有了: --第一次输入时写 category: ,content(user()),/* title: a content: */#--此时第二个case中的insert语句be like:$sql insert into commentset category ,content(user()),/*,content */#,bo_id $bo_id;#也就是$sql insert into commentset category ,content(user()),/*,content */#,bo_id $bo_id;content(user())这条语句就被执行了然后爆出的信息就会被插入在content中然后被页面显示出来。
http://www.hkea.cn/news/14366214/

相关文章:

  • 池州网站建设公司android studio教程
  • wordpress网站迁移网站的建设初步定位
  • 免费人体做爰网站免费企业网站模板psd
  • 建网站是什么专业类别如何建设谷歌网站
  • 长沙公司网站建立网络系统开发
  • 阳泉营销型网站建设费用学校招标网站建设
  • 番禺网站建设哪家强排名优化是什么意思
  • 塔里木油田公司档案馆网站建设研究广告设计平面设计培训班
  • 网站专业制作公司用云速成美站怎么做网站
  • 建电子商务网站费用厂房装修公司深圳
  • 深圳公司网站推广增城专业建站公司
  • 太原中小企业网站制作wordpress轮播代码
  • 辽宁建设厅查询网站首页检索标准的网站
  • 网站备案 强制如何做网站词库
  • 前端asp网站开发石家庄建立网站
  • 手机建站平台可上传自己视频网站建设应走什么会计科目
  • 农业企业网站模板免费下载网站建设 中企动力
  • 企业网站建设的开发方式工业产品设计效果图
  • 上海外包公司网站建设门户网站
  • 精仿源码社区网站源码微商城官网地址
  • 响应式网站介绍头像定制在线生成器
  • 聚美优品网站建设导向网站多久需要维护
  • 建一个下载网站要什么cms系统seo排名怎么提高
  • 设计公司网站的主页怎么做游戏软件制作开发
  • 网站的目标定位有哪些sem外包
  • 微信建网站平台的孙红雷做的二手车网站
  • 基于微信公众平台的微网站开发本溪网站开发公司电话
  • 手机网站建站工作室跑流量的网站
  • 做音乐网站要什么源码wordpress 导航网站主题
  • 网站平台建设的作用做网站怎么去找客户