web安全
藏蓝色的达达
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2020.4.10 xctf(ics-04)
题目提示在登陆、注册页面有SQL注入漏洞 除了忘记密码的那块,其他地方都没找到注入点 用sqlmap在这里跑一下,看有没有注入 获取数据库名: python sqlmap.py -u "http://159.138.137.79:49507/findpwd.php" --data "username=1" --dbs --batch 获取表名: python sqlmap.py -u "http...原创 2020-04-20 21:53:00 · 598 阅读 · 0 评论 -
2020.4.9 xctf(Cat)①
给url参数传入参数%80,Django报错,根据报错知道网站是Django开发 结合PHP可以通过在参数中注入@来读取文件的漏洞,首先看看配置文件settings.py,看看有没有相关的有用的信息。 Payload:?url=@/opt/api/api/settings.py 得到数据库名为 database.sqlite3 再获取数据库内容 Payload:?url=@/opt/api/...原创 2020-04-19 21:49:59 · 487 阅读 · 0 评论 -
2020.4.8 xctf(fakebook)
提示让我们注册一个账号,这里随便注册,注意一下blog的格式就行。 然后用我们注册好的账号进行登录。 登录后发现url 为 http://111.198.29.45:33988/view.php?no=1 ,第一时间想到是否存在sql注入,我们输入 ’ 根据报错的显示,可以肯定存在sql注入的,然后我们用 order by 语句判断查询的字段数目,以便于后续进行 union 查询, 先 ...转载 2020-04-10 20:50:46 · 800 阅读 · 0 评论 -
2020.4.6 xctf(shrine)②
首先打开网站,看到网站的源码: import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os.environ.pop('FLAG') @app.route('/') def index(): return open(__file__).read() @app.route('/shrine/&...转载 2020-04-06 22:29:10 · 1014 阅读 · 3 评论 -
2020.4.6 xctf(web2)①
感觉这就是一道php写的逆向题 主要是得认得几个函数,和读懂 整个代码的逻辑!! 1.strrev函数 2.substr函数 3.str_rot13函数 脚本如下: <?php $a=" a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; $a=str_rot13($a); $a=strrev($a); $a=b...原创 2020-04-06 21:02:22 · 290 阅读 · 0 评论 -
2020.4.5 xctf(mfw)②
打开网页看见(猜测git源码泄露): 在URL后面加上./git发现: 使用工具GitHack进行爬取 发现源码内存在flag.php 感觉没啥用 if (isset($_GET[‘page’])) { $page = $_GET[‘page’]; } else { $page = “home”; } $file = “templates/” . $page . “.php”; // I ...转载 2020-04-05 23:34:46 · 308 阅读 · 0 评论 -
2020.4.5 xctf(lottery)①
摇奖中彩票,规则及金额都标明了,7位数全对有大奖 flag在这,需要钱买 又因为true和任意一个数字都满足 == ,因此我们猜想能不能通过改包,将准备购买的数字全换成true,直接中大奖,进行刷钱。我们先在本地验证一下!!! 由于我们的请求体值的数据是采用json格式的,而且json可以支持boolean,因此我们构造 [true,true,true,true,true,true,tru...原创 2020-04-05 22:12:00 · 331 阅读 · 0 评论 -
2020.4.4 sqli-labs--第十五、十六关 ②
less-15 POST - Blind- Boolian/time Based - Single quotes (基于bool型/时间延迟单引号POST型盲注) 方法一 盲注 - 基于布尔值 - 字符串 怎么输入都没有回显,那就时间延迟吧。 布尔测试payload uname=admin' and 1=1 --+&passwd=admin&submit=Submit //登...原创 2020-04-04 21:52:52 · 569 阅读 · 0 评论 -
2020.4.4 sqli-labs--第十三、十四关③
Less-13 POST - Double Injection - Single quotes- String -twist (POST单引号变形双注入) 方法一 通过报错可知 是通过’) 闭合的 发现没有登入成功返回信息 ,看来是要盲注了 万能密码: 账号admin’)# 密码:随便 方法二: 既然它返回错误信息了,说明有回显,可以报错注入。 数据库名 uname=admin') and e...原创 2020-04-04 17:43:36 · 497 阅读 · 0 评论 -
2020.4.3 sqli-labs--第八、九、十关②
方法一:看是否有file权限,利用into outfile 1.?id=2’ --+ 页面回显正常,不赘述了,这里是单引号字符型注入 2.页面没有显示位,没有数据库报错信息。 我们先尝试一下是否有file权限(先判断字段数) 3.当输入3时返回正常,输入4时不返回。 http://127.0.0.1/sqli-labs/Less-8/?id=1' union select 1,"<?php...原创 2020-04-04 16:11:51 · 704 阅读 · 0 评论 -
2020.4.3 sqli-labs--第十一、十二关①
对于post传参的我们最好用bp 输入admin admin 登陆,抓包,发送到repeater模块 在repeater中通过修改post的参数进行注入。 方法一 extractvalue测试payload uname=admin' and 1=1 --+ &passwd=admin&submit=Submit //能登陆 uname=admin' and 1=2 --+ &...原创 2020-04-03 21:37:54 · 643 阅读 · 0 评论 -
2020.4.2 sqli-labs--第五,六关
第五关 .盲注是注入攻击的其中一种,向数据库发送true或false这样的问题,并搞根据应用程序返回的信息判断结果,这种攻击的出现是因为应用程序配置为只显示常规错误,但并没有解决SQL注入存在的代码问题。 1.经错测试发现,当输入?id=3时页面显示正常,具体如下 当输入?id=486页面显示如下 说明页面没有显示位。无法使用联合查询注入 2.接着我们尝试在URL中输入 ?id=2’ 页面出...原创 2020-04-03 00:03:23 · 334 阅读 · 0 评论 -
2020.4.2 sqli-labs--第7关①
1.这里科普一下file权限和into outfile这个函数。 数据库的file权限规定了数据库用户是否有权限向操作系统内写入和读取已存在的权限。 into outfile命令:select into outfile命令作用将查询结果输出保存到一个文件中 使用的环境: 我们必须知道,服务器上一个可以写入文件的文件夹的完整路径 2.我们正常输入?id=1页面回显如下 3.当我们输入 and 1=2...转载 2020-04-02 23:30:37 · 905 阅读 · 1 评论 -
2020.4.1 sqli-labs--第一至第四关
1.验证方式:’ 或 and 1=1 and 1= 2 如果页面不显示内容或者报mysql错误,就说明存在注入。(get和post传参都可用) 2.mysql5.0以上的版本中,为了方便管理,默认定义了information_schema数据库,用来存储数据库元信息,其中具有表schemata(数据库名)、tables(表名)、columns(列名或字段名) schemata表中,s...原创 2020-04-01 19:18:25 · 412 阅读 · 0 评论 -
2020.3.31xctf(Web_php_unserialize)③
<?php class Demo { private $file = 'index.php'; public function __construct($file) { $this->file = $file; } function __destruct() { echo @highlight_file($th...原创 2020-03-31 21:36:04 · 451 阅读 · 0 评论 -
2020.3.31 xctf(Web_python_template_injection)①
根据题意可知python模块注入 测试payload:http://111.198.29.45:31069/{{3+4}} 执行了{{}}中的代码。 {{''.__class__.__mro__[2].__subclasses__()}} {{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].list...转载 2020-03-31 20:18:34 · 434 阅读 · 0 评论 -
2020.3.30 xctf(upload1)④
但是当我们想要上传php文件的时候会出现弹窗,并且连“上传”按钮都被禁用了 这里是在 客户端进行 了限制也就是在js代码上进行了限制。我们只要上传符合他白名单的后缀名文件,然后bp抓包,将后缀改成 .php 即可。 以下有两种方法来获得flag。 ①法一:上传一句话,菜刀连接。 ②法二:通过在bp中修改,执行一些命令。 右键查看源码或者F12 ...原创 2020-03-30 21:57:32 · 351 阅读 · 0 评论 -
2020.3.30 xctf(unserialize3)③
我们访问目标网址,根据__wakeup魔术方法和题目名字,可以猜到这里是用到了php反序列化 class xctf{ //定义一个名为xctf的类 public $flag = '111'; //定义一个公有的类属性$flag,值为111 public function __wakeup(){ //定义一个公有的类方法__...转载 2020-03-30 19:42:13 · 321 阅读 · 0 评论 -
2020.3.30 xctf(PHP2)②
⑴我们发现有个index.php,我们访问一下,没有结果… 那么我们看看能否看看该网页php地源码,这里用到了.phps .phps后缀释义: phps文件就是php的源代码文件。 通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替 于是我们访问index.phps,看到下图所示: ctrl+U看到完整php代码是: <...原创 2020-03-30 17:22:25 · 466 阅读 · 0 评论 -
2020.3.30 xctf(NaNNaNNaNNaN-Batman)①
我们将其放在phpstudy的www先,在浏览器中看看是个啥样子! eval函数,这是执行函数;这里执行了_变量中的内容也就是’'中的内容,但是,要注意的是,它并没有执行()函数,仅仅执行了字符串而已(从而导致乱码),因而页面html页面没有任何显示,只显示了input标签的内容,但是我们想让源代码正常显示出来,不进行执行,那么,我们就用到了alert弹窗(将eval函数改为alert),将乱码的...原创 2020-03-30 16:30:47 · 394 阅读 · 1 评论 -
2020.3.29 xctf(NewsCenter)①
打开题目,有一处搜索框,搜索新闻。考虑xss或sql注入 这里我们介绍两种手动和sqlmap ①手动测: 我们这里先用order by 手动测字段数,发现当4的时候页面就不能正常显示了,所以这里应该是3。 查询当前数据库中的所有表名: 1' union select 1,2,group_concat(table_name) from information_schema.tables where ...原创 2020-03-29 23:59:37 · 537 阅读 · 0 评论 -
2020.3.28 xctf(warmup)②
由于不熟悉PHP的几个函数,我查了几个小时才弄明白后面讲的什么!! 可以看到有注释source.php,访问后可以看到其源码 发现一个hint.php文件,先访问一下 我猜测flag就在这个ffffllllaaaagggg里面 现在我们就开始看看代码中讲的啥!! 这里就相当于创建一个python中的字典(当然这里是php) ...原创 2020-03-28 21:52:22 · 508 阅读 · 0 评论 -
2020.3.28 url中/和./和../和无/的区别④
方式一: 没有斜杠,跳转到和自己(rootPath.html)同目录下的layout页面 方式二: 单斜杠加前有一点,跳转到和自己(rootPath.html)同目录下的layout页面 总结:方式一和方式二效果是相同的。 方式三: 单斜杠,跳转到整个网站根目录下的(如果是在本机测试,也就是 http://localhost:8080/,注意此路径不包括项目名,只到项目名的上一级,易错认为是到we...转载 2020-03-28 21:47:22 · 386 阅读 · 0 评论 -
2020.3.28 xctf进阶()①
看源码,可能是不想让我们使用php://input伪协议 因为strstr函数匹配php://,str_replace函数将php://替换为空 但是strstr区分大小写,因此我们可以使用大小写绕过 这里我们看看strstr()函数的实例: php://input 是个可以访问请求的原始数据的只读流。 用bp抓包: 在这里插入图片描述 ...原创 2020-03-28 19:06:54 · 265 阅读 · 0 评论 -
2020.3.27 (php_rce)③
本题使用的框架是ThinkPHP 5.0 的框架。此版本存在getshell漏洞(百度一下poc一抓一大把) 查找flag: http://111.198.29.45:45747/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=...原创 2020-03-27 23:31:17 · 299 阅读 · 0 评论 -
2020.3.27 xctf(Training-WWW-Robots)②
用御剑扫一下目录 点开robots.txt 将robots.txt换成fl0g.php就可以了原创 2020-03-27 22:42:17 · 298 阅读 · 0 评论 -
2020.3.27 xctf(baby_web)①
观察题目内容,想想初始页面是哪个,再看看URL,尝试输入index.php试试看,发现直接跳转到1.php 那就用bp抓包拦截下来index.php页面,发送到repeater,go一下 ...原创 2020-03-27 22:27:58 · 350 阅读 · 0 评论 -
2020.3.25 bugku(31-35)
31. 看起来是个上传题,提示只能上传图片,这时候就需要拿出我们的一句话来了。 首先来试试水,上传一个一句话木马,使用burp抓包,修改content-type为image/jpeg 上传失败,可能是对文件进行了过滤,让我们来绕过试一下 这个题是对文件类型进行了两次判断 ultipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式,意思是他通过表单会对文件格式再进行一次判...原创 2020-03-26 23:58:49 · 610 阅读 · 0 评论 -
2020.3.24 bugku(26-30)
26. 这句话用于告诉服务器我来自哪个页面,题目的提示google。 27. <?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*************...原创 2020-03-24 23:37:39 · 342 阅读 · 0 评论 -
2020.3.23 bugku(21-25)
21. 我们看到响应头中flag字段对应字符串“6LeR55qE6L+Y5LiN6ZSZ77yM57uZ5L2gZmxhZ+WQpzogT0RVME16ZzA=”,字符串以“=”结尾,很自然联想到可能是base64编码。base64解码为:“跑的还不错,给你flag吧: ODU0Mzg0” 3,我们看到base64解码后的中的字符串“ODU0Mzg0”是8位,不仅8位还看着怪怪的,再次base64...原创 2020-03-24 18:23:43 · 790 阅读 · 0 评论 -
2020.3.22 bugku(16-20)
16. 这是一个典型的文件包含漏洞,(file关键字是提示,其实也是CTF的套路)。 利用: http://120.24.86.145:8005/post/index.php****?file=php://filter/read=convert.base64-encode/resource=index.php 这个很明显是base64编码的。 然后将得到的字符串base64解码得到index的源码...原创 2020-03-23 15:30:49 · 637 阅读 · 0 评论 -
2020.3.21 bugku(11-15)
JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥的 JavaScript编程风格。以这种风格写成的代码中仅使用 [、]、(、)、! 和 + 六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器或解释器来执行,无论浏览器或JavaScript引擎中的原生 JavaScript 解释器皆可直接运行。鉴于 JavaScript 是弱类型语言,编写者可以用数量有限的字符重写 JavaScript 中的所有功原创 2020-03-21 21:31:38 · 324 阅读 · 0 评论 -
2020.3.20 bugku(6-10)
6. 点击之后F12查看源代码。 然后将注释的内容在站长工具中进行unico转码(KEY{J2sa42ahJK-HS11III}) ***7.***(域名解析时会先在本地进行解析,要是本地没有才会进行远程解析) ...原创 2020-03-19 23:58:35 · 220 阅读 · 0 评论 -
2020.3.18 bugku(1---5)
1. 解:直接F12查看网页源码,找到flag。 2. 解:题目提示是计算器,且输入框内始终只能输入一个数字,我们猜测它是对输入长度进行了 限制。我们通过菜单 web开发者>>调试器 然后将鼠标移动到输入框,双击就能找到源代码所在位置。然后修改长度,输入正确答案。 bingo!! 3. 4. 这里用hackbar传参。 5. 这是关于php弱类型的比较,我在前几天的博客中写了的,...原创 2020-03-19 20:00:33 · 278 阅读 · 0 评论 -
2020.3.17 XCTF的基础题
题目描述目标:了解php一句话木马、如何使用webshell 我们这里使用菜刀进行连接(也可以用蚁剑): 题目描述: 这是远程命令执行(rec),我给个pikachu的讲解视频,里面讲的很基础,很适合像我这种零基础的小白。 pikachu 步骤: 1.打开浏览器,在文本框内输入127.0.0.1 | find / -name “flag.txt” (将 | 替换成 & 或 &&am...原创 2020-03-19 18:54:20 · 404 阅读 · 0 评论 -
2020.3.19 XCTF的基础题
题目描述:(学会使用hackbar) 1.打开hackbar,用get方式传递a=1,如图所示 2.勾选hackbar上的Enable post data,用post方式传递b=2,可获得flag,如图所示 原理: X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项 HTTP Referer...原创 2020-03-19 18:41:18 · 588 阅读 · 0 评论 -
2020.3.16 xctf_Cyberpeace-n3k0
初识web安全 题外话: 我以前是学逆向和pwn的,每每看到别人学web那么厉害我心里痒痒的,所以开启了我web之路。但是 我的逆向之路并没有放弃,明天开始继续窥探逆向和web的世界,pwn的话,要是有时间就看看。文章写的不是很好,望不要见笑。 先说说这个php的弱类型比较,见链接: 关于弱类型的比较 php中的弱类型比较会使’abc’ == 0为真,所以输入a=abc时...原创 2020-03-17 00:03:17 · 1544 阅读 · 0 评论
分享