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

做一个网站的详细教学重庆市门户网站制作

做一个网站的详细教学,重庆市门户网站制作,施工企业发电机加油怎么做账,昆明小程序开发多少钱一、原理#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.yayakq.cn/news/950/

相关文章:

  • 商会网站建设招标方案分公司一般做网站吗
  • 成都铁路局贵阳建设指挥部网站网站建设中html网页
  • waP六感程序建设网站制作一款手游需要多少钱
  • 网页前端模板网站内优化怎么做
  • 那可以做网站模板网站和定制网站有什么区别
  • 台州企业网站排名优化德阳建设网站
  • 做网站比较便宜广州网站建设市场
  • 新编asp.net 2.0网站开发从入门到精通 代码网站建设中敬请期待 图片
  • 网络品牌营销推广公司自己网站做优化的有权利卖么
  • 卖摄影作品的网站威海市建设局官方网站
  • 长沙网站设计开发谷歌怎么做网站推广
  • 提高网站搜索排名手机网站可以做动态吗
  • 网站建设需要租用什么在网上做游戏网站违法吗
  • 嘉瑞建设集团有限公司网站开发公司注册资金要求
  • 做办公室的网站河南省网站备案
  • 织梦做中英文网站步骤龙岗-网站建设深圳信科
  • 胶州市城乡建设局网站做360手机网站优
  • vip影视网站怎么做的深圳软件公司平均薪资排行榜
  • 网站ui设计兼职可视化网站制作软件
  • 网站底部模板视频直播sdk
  • 音乐外链网站月夜直播免费版
  • 手机网站相册代码自助建子站
  • 有了源代码怎么做网站返利网站做淘宝
  • 哈尔滨网站关键词优化排名沈阳建网站
  • 怎么制作网站接口建设网站文件夹的名字
  • 建设英文网站要求做外贸怎么上国外网站
  • 网站开发的项目内容玉林住房和城乡建设局网站官网
  • 做网站网站是什么案件文章标签wordpress
  • 北京网站设计学习php网站语言切换功能如何做
  • 店名设计logo网站怎么做seo排名