
学习笔记
Noslpum
网络安全本科在读,所写文章仅属于个人爱好,用于记录,学习,交流。请勿用于盈利。
展开
-
【学习笔记 49】 buu [极客大挑战 2019]FinalSQL
0x00 知识点盲注解体思路盲注没有什么可以详解的知识点,只需要找到注入点,之后这里就是利用常规的payload,构造二分法脚本就可以直接解题打开题目一看提示说是SQL盲注,先要找到注入点,这里的注入点不是在用户名,密码处,而是在12345这个按钮的地方,点击一下跳转到search.php页面,在该页面id=后可以构造payload这里没有什么过滤利用常规的payload就可以直接跑脚本"id=1^(ascii(substr((select(database())),%d,1))&l原创 2020-08-11 10:57:12 · 282 阅读 · 0 评论 -
【学习笔记 48】 buu [网鼎杯 2020 朱雀组]Nmap
0x00 知识点NMAP中使用-0G命令可以实现代码写入0x01 解题思路打开网站一看发现是一个NMAP网站尝试输入输入任意ip可以看到这里返回了nmap扫描的结果,这里我们就想到了NMAP里的-oG命令实现代码的写入,那我们这里就可以尝试构造payload,来利用‘拼接,写入我们想要的shell文件' <?php @eval($_POST["cmd"]);?> -oG shell.php '尝试后发现报错,说明这里有过滤不能直接进行,最后利用fuzz发现过滤了php,原创 2020-08-11 09:29:23 · 850 阅读 · 1 评论 -
【学习笔记 47】 buu [网鼎杯 2020 朱雀组]phpweb
0x00 知识点readfile函数读取文件反序列化实现命令执行0x01 知识点详解什么是readfile函数?答:readfile() 函数读取一个文件,并写入到输出缓冲。如果成功,该函数返回从文件中读入的字节数。如果失败,该函数返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 ‘@’ 来隐藏错误输出。什么是反序列化?答: 可以去看看我之前的文章<?php $disable_fun = array("exec","shell_exec","syste原创 2020-08-09 14:42:53 · 446 阅读 · 0 评论 -
【学习笔记 46】 buu [NCTF2019]Fake XML cookbook
0x00 知识点XXE攻击0x01 知识点详解什么是XXE攻击?答: XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。这里有一篇大佬的博客可以学习学习0x02 解题思路原创 2020-08-03 11:38:45 · 455 阅读 · 0 评论 -
【学习笔记 45】 buu [安洵杯 2019]easy_serialize_php
0x00 知识点php反序列化逃逸代码审计0x01 知识点详解什么是php反序列化逃逸?答:<?php$_SESSION["user"]='flagflagflagflagflagflag';$_SESSION["function"]='a";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";s:2:"dd";s:1:"a";}';$_SESSION["img"]='L2QwZzNfZmxsbGxsbGFn';echo serialize($_SE原创 2020-08-03 11:04:11 · 576 阅读 · 1 评论 -
【学习笔记 44】 buu [MRCTF2020]Ez_bypass
0x00 知识点绕过md5()函数绕过is_numeric()函数代码审计0x01 知识点详解md5()函数怎么绕过?答:本题是将两参数传成数组,由于md5()函数无法操作数组,也就判断都为null,像个参数的md5值也就相同了。is_numeric()函数怎么绕过?答:is_numeric() 函数用于检测变量是否为数字或数字字符串。本题由于在这个函数之后还有一个弱类型比较,所以要用1234567a绕。1234567a是字符串,但是弱类型比较的时候,1在前,php会将其整体转成数字,原创 2020-08-03 10:17:09 · 362 阅读 · 0 评论 -
【学习笔记 43】 buu [BJDCTF 2nd]简单注入
0x00 知识点\转义单引号整型注入二分法脚本0x01 解题思路打开网站一看,再尝试在用户名和密码处尝试进行注入,发现‘,“都会报错,之后用御剑一扫,发现hint.txt文件。访问一下看看提示说之后正确的用户和密码才能登上去,得到flag。之后给出了传参方式和mysql命令语句。这时候很明显username处注入\来转义单引号,password处使用sql语句整数型注入。举个例子:a. 传入admin\ 和 or/**/length(database())>0#会回显st原创 2020-08-02 21:43:34 · 1162 阅读 · 0 评论 -
【学习笔记 42】 buu [BJDCTF2020]Cookie is so stable
0x00 知识点Twig模板注入0x01 知识点详解什么是Twig模板注入?答:这里推荐一位大佬的文章,看看人家的博客,才是真的强。https://www.k0rz3n.com/2018/11/12/一篇文章带你理解漏洞之SSTI漏洞/#2-Twig0x02 解题思路什么都没有,点开flag发现是个登录界面,尝试经典{{7*7}}后判断是Twig模板注入再hint页面查看源码发现提示指向了cookie,再flag页面登录的时候抓包分析。推测出cookie里的user参数就是原创 2020-08-02 18:56:11 · 425 阅读 · 0 评论 -
【学习笔记 41】 buu [GXYCTF2019]BabyUpload
0x00 知识点.htaccess文件上传绕过0x01 知识点详解请参考我上一篇学习笔记0x02 解题思路一看就知道是上传,尝试php3,phtml,普通一句话木马改后缀也不行,而且是添加了对文件的检测。继续尝试利用.htaccess文件上传,首先上传一个.htaccess文件<FilesMatch "flag.png"> SetHandler application/x-httpd-php</FilesMatch>这里注意,这道题不知道为什么,我这原创 2020-08-02 15:40:00 · 593 阅读 · 0 评论 -
【学习笔记 40】 buu [MRCTF2020]你传你呢
0x00 知识点.htaccess文件上传绕过0x01 知识点详解什么是.htaccess文件?答:htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。怎么利用.htaccess文件进行上传?答:我们可以在.htaccess文件文件中加入php解析规则,比如,本题中就利用这个解析规则将jpg原创 2020-08-02 12:30:23 · 450 阅读 · 0 评论 -
【学习笔记 39】 buu [BJDCTF2020]ZJCTF,不过如此
0x00 知识点文件包含伪协议preg_replace()使用的/e模式可以存在远程执行代码0x01 知识点详解什么伪协议?答:PHP伪协议事实上就是支持的协议与封装协议一共有一下12种a. file:// — 访问本地文件系统b. http:// — 访问 HTTP(s) 网址c. ftp:// — 访问 FTP(s) URLsd. php:// — 访问各个输入/输出流(I/O streams)e. zlib:// — 压缩流f. data:// — 数据(RFC 23原创 2020-08-01 19:44:46 · 396 阅读 · 0 评论 -
【学习笔记 38】 buu [BJDCTF2020]The mystery of ip
0x00 知识点base_convert函数的利用bin2hex和hex2bin函数代码审计0x01 知识点详解base_convert函数的作用?答:base_convert() 函数在任意进制之间转换数字。bin2hex和hex2bin函数的作用?答:hex2bin() 函数把十六进制值的字符串转换为 ASCII 字符。bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。0x02 解题思路1.打开网站就直接看原创 2020-08-01 17:22:59 · 343 阅读 · 0 评论 -
【学习笔记 37】 buu [BJDCTF2020]The mystery of ip
0x00 知识点tplmap探测是否存在模板注入漏洞smartly模板注入0x01 知识点详解tplmap的使用方法?答:这里只用到python tplmap.py -u 'curl',想了解详情的话这里附上一篇大佬的博客。什么是smartly模板引擎注入?答:这里参考这篇文章解题思路打开网站一看就看到了他提示的flag,那还不点开看看提示到了我的IP,这一瞬间就让我想到了http的请求头里的XXF参数和Client-ip参数,想了解http请求头详情的请去看我的上一篇文原创 2020-08-01 11:08:31 · 441 阅读 · 0 评论 -
【学习笔记 36】 buu [BJDCTF 2nd]假猪套天下第
0x00 知识点http数据包分析与修改0x01 知识点详解各项HTTP请求的意义?答:如果感觉这个图不够清晰,这里附上其他人的博客0x02 解题思路打开网站一看是一个登录界面,先用admin用户登录试试,但是报错,不让登录。用其他任意用户登录,用任意密码都可以直接登录。尝试用burp抓一下登录的包看看有没有什么有用的信息可以看到这里提示到了L0g1n.php网页,访问这个网页,抓包看看。这个提示要等99年后,那我们就去改一下time这个参数,把这个值给改的很大之后看到提原创 2020-07-31 18:47:23 · 279 阅读 · 2 评论 -
【学习笔记 35】 buu [SWPU2019]Web1
0x00 知识点bypass information_schema无列名注入0x01 知识点详解什么是information_schema?答:information_schema:简单来说,这个库在mysql中就是个信息数据库,它保存着mysql服务器所维护的所有其他数据库的信息,包括了数据库名,表名,字段名等。在注入中,infromation_schema库的作用无非就是可以获取到table_schema,table_name,column_name这些数据库内的信息。MySQL5.7原创 2020-07-31 12:17:18 · 291 阅读 · 0 评论 -
【学习笔记 34】 buu [BJDCTF2020]Mark loves cat
0x00 知识点/.git源码泄露代码审计变量覆盖漏洞0x01 知识点详解什么是变量覆盖漏洞?答:变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$,extract()函数,parse_str()函数,import_request_variables()使用不当,开启了全局变量注册等。本题就是因为"$$"使得一个 可变变量获得了一个普通变量的值0x02 解题思路首先利用dirsearc原创 2020-07-31 00:07:28 · 392 阅读 · 0 评论 -
【学习笔记 33】 buu [ASIS 2019]Unicorn shop
0x00 知识点Unicode编码的安全问题0x01 知识点详解什么是Unicode编码安全?答:这个我解释不清楚,直接来链接:https://xz.aliyun.com/t/5402#toc-00x01 解体思路打开题后看到网站就是让我们买独角兽。网页上还有一句富兰克林的名人名言,请原谅我英语不好,看不懂!看看下边这四个商品,为什么有一个这么贵,不出意外,最贵的肯定就是我们最想要的。利用Ctrl+u查看源码看看有没有什么重要信息但是我一看除了utf-8的编码以外那些英语备注原创 2020-07-30 21:59:13 · 402 阅读 · 0 评论 -
【学习笔记 32】 buu [GKCTF2020]cve版签到
0x00 知识点cve-2020-7066利用0x01 知识点详解cve-2020-7066怎么利用?答:在低于7.2.29的PHP版本7.2.x,低于7.3.16的7.3.x和低于7.4.4的7.4.x中,将get_headers()与用户提供的URL一起使用时,如果URL包含零(\ 0)字符,则 URL将被静默地截断。 这可能会导致某些软件对get_headers()的目标做出错误的假设,并可能将某些信息发送到错误的服务器。这里配上cve连接https://bugs.php.net/bu原创 2020-07-30 20:58:13 · 407 阅读 · 0 评论 -
【学习笔记 31】 buu [0CTF 2016]piapiapia
0x00 知识点网站目录的扫描(源码泄露)代码审计PHP反序列化字符逃逸0x01 知识点详解网站目录扫描工具都是那几种?答:这里不单单是指常规的御剑,还包括dirsearch,dirb,nikto等工具,一定要多积累一些这样的工具,不然遇到这种同样的源码泄露,或者有robots.txt文件的题都没法下手。什么是PHP反序列化字符逃逸?答:这里引用一个大佬的例子,感觉很是清晰明了,之后我也会自己再详细学习。序列化<?php$a = array('123', 'abc', '原创 2020-07-30 18:08:59 · 478 阅读 · 0 评论 -
【学习笔记 30】 buu [GXYCTF2019]BabySQli
0x00 知识点联合注入base32+base64通过联合注入向数据库中写数据0x01 知识点详解1. 利用联合注入向数据库里写东西的原因?答:在使用联合注入时,如果你查询的数据不存在,那么就会生成一个内容为null的虚拟数据,所以这是我们就可以在注入时添加我们需要的信息来完成我们的目的。2. base32和base64的区别?答:base32是全部由大写字母和数字构成,或者其结尾有三个等号base64则是由大小写字母和数字一起构成。0x02 解题思路打开网站看到一个登录页面尝原创 2020-07-29 11:31:12 · 457 阅读 · 0 评论 -
【学习笔记 29】 buu [极客大挑战 2019]HardSQL
0x00 知识点sql报错注入通过left,right来查询不同内容0x01 知识点详解什么是报错注入?答:其原因主要是因为虚拟表的主键重复。按照MySQL的官方说法,group by要进行两次运算,第一次是拿group by后面的字段值到虚拟表中去对比前,首先获取group by后面的值;第二次是假设group by后面的字段的值在虚拟表中不存在,那就需要把它插入到虚拟表中,这里在插入时会进行第二次运算,由于rand函数存在一定的随机性,所以第二次运算的结果可能与第一次运算的结果不一致,但原创 2020-07-28 23:31:24 · 192 阅读 · 0 评论 -
【学习笔记 28】 buu [网鼎杯 2018]Fakebook
0x00 知识点robots.txt文件泄露SSRF(服务器端请求伪造)多种SQL注入以及绕过构造序列化字符串0x01 知识点详解什么是SSRF?答:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。详情推荐去看这个大佬的文章什么是序列化,什么是反序列化?这原创 2020-07-28 18:17:16 · 372 阅读 · 0 评论 -
【学习笔记 27】 buu [极客大挑战 2019]BabySQL
0x00 知识点union injection(联合注入)双写注入绕过0x01 知识点详解1. 什么是union injection(联合注入)?答:详情请查看我的第23篇学习笔记2.什么是双写绕过?答:这里推测是利用replace函数将检索到第一个关键词替换为空格,但是当我们重复书写后就可以绕过。例如:我们可以将union替换为ununionion来进行绕过。0x02 解题思路登录网站查看网站看这个网站有点像之前做的那道lovesql那道题,再加上名字,不用想,肯定是注入了。先原创 2020-07-28 10:57:26 · 265 阅读 · 0 评论 -
【学习笔记 26】 buu [SUCTF 2019]CheckIn
0x00 知识点利用.user.ini文件的文件上传利用利用GIF89a文件头绕过exif_imagetype()的检测。0x01 知识点讲解什么是.user.ini文件?答:.user.ini文件相当于一个用户可以自定义的php.ini文件,但是有一点限制就是不能定义PHP_INI_SYSTEM模式,而在执行php代码之前,系统会对.user.ini先做一个执行,然后才执行其他的php文件。怎么利用.user.ini文件?答:我们可以在.user.ini文件中写入auto_prepen原创 2020-07-27 19:35:01 · 361 阅读 · 0 评论 -
【学习笔记 25】 buu [极客大挑战 2019]LoveSQL
0x00 知识点1.利用常用万能密码登录2.利用union构造联合注入得到flag0x01 解题思路1.打开网站,映入眼帘的就是一个登录界面,并且网页头上有一行小字,说是不让用sqlmap跑,那我偏要试试,但是现在还找不到注入点,继续进行,等下再试。这时在查看源码时发现验证的check.php页面和get的传参方式,直接访问check.php网页什么重要信息都没,那继续回到原网页利用常用的万能密码进行登录测试。这里用到的是用户名:admin'/*密 码:*/'登录成功。发现被蓝色圈圈出原创 2020-07-27 17:12:06 · 427 阅读 · 0 评论 -
【学习笔记 24】 buu [SUCTF 2019]EasySQL
0x00 知识点1.经典堆叠注入(具体什么是堆叠注入,去看我上一篇笔记)2.使用set sql_mode=PIPES_AS_CONCAT,将||所代表的或的意思改为连接的意思0x01 解题步奏1.打开题一看,就是让你查询东西,结合题目判断为sql注入考察,尝试利用1来测试回显成功。之后利用’和"来测试回显的都是nonono,一看就被过了2.用fuzzing跑了一下,发现*,|,||没有被过,其他的都不能用,联合注入什么的别想了。绝望了3.尝试堆叠注入尝试一下1;show database原创 2020-07-27 12:52:22 · 209 阅读 · 0 评论 -
【学习笔记 23】 buu [强网杯 2019]随便注
0x00 知识点1.堆叠注入2.利用rename,alter的sql命令完成数据库操作0x01 详解1.什么是堆叠注入?堆叠注入就是利用sql命令中利用“;”来做一句sql命令的结束标志,但是在“;”后的同一行里添加其他sql命令仍可以执行。2.堆叠注入与union injection(联合注入)之间的区别?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。3.堆叠注入的局限性?堆叠注入并不是在每种情况下都能使用的。原创 2020-07-26 13:46:43 · 331 阅读 · 0 评论 -
【学习笔记 22】 buu [GKCTF2020]CheckIN
0x00 知识点任意文件写入漏洞,部分过滤的绕过0x01 解题过程打开一看,代码审计<title>Check_In</title><?php highlight_file(__FILE__);class ClassName{ public $code = null; public $decode = null; function __construct() { $th原创 2020-06-25 21:23:23 · 648 阅读 · 0 评论 -
【学习笔记 21】 buu [GKCTF2020]老八小超市儿
0x00 知识点web安全渗透,后渗透提权ps:想要看我之前的文章请点击如下链接点我点我00x1 解题思路一看题目就是一道有味道的ctf题,打开一看发现是个(粉粉嫩的)网站shopxocms的网站,百度搜索对应的网站漏洞,说是后台有地方可以利用压缩包getshell,尝试一下发现是admin.php就能打开对应的后台登录界面,并且知道了初始登录用户名admin,密码shopox,直接登录后台登陆进去后在应用中心->应用商店->主题的第一个默认主题,下载下来用其中任意一个压缩包,用原创 2020-06-24 19:41:52 · 609 阅读 · 0 评论 -
【学习笔记 20】buu [BJDCTF2020]Easy MD5
知识点password='".md5($pass,true)."'解题360截图17290429273651.PNG360截图17891228296729.PNG这里可以看到是通过get参数进行传参,但是这里也没有其他的提示,尝试传统的抓包,等分析没有得到有用信息,查看大佬wp,知道了其中调用了这样的函数password='".md5($pass,true)....原创 2020-06-23 13:11:48 · 289 阅读 · 0 评论 -
【学习笔记19】实验吧 让我进去
知识点MD5拓展攻击解题思路打开网站后看到,什么都没有,尝试抓包分析360截图17860604827894.PNGBurp 抓包发现,Cookie有东西。先是把source=0改成source=1,得到源码。、、、<?php$flag = "XXXXXXXXXXXXXXXXXXXXXXX";$secret = "XXXXXXXXXXXXXXX"; // 密码...原创 2020-06-22 21:26:32 · 256 阅读 · 0 评论 -
【学习笔记18】buu [WesternCTF2018]shrine
打开网站,查看源码看到下面的一串代码import flask//flask模板,首先就想到了想到了之前我写的一篇flask模板ssti逃逸import osapp = flask.Flask(__name__)app.config['FLAG'] = os.environ.pop('FLAG')//注册了一个名为FLAG的config,这里基本可以确定是flag。@app.route('...原创 2020-05-18 16:46:14 · 500 阅读 · 1 评论 -
【学习笔记17】buu [安洵杯 2019]easy_web
点开网站后就看到这样一个网站,在查看url的时候看到img的这个参数有问题,研究一下,发现这串“TXpVek5UTTFNbVUzTURabE5qYz0”字符,经过两次base64解密后变成了这个“3535352e706e67”,回忆一下发现在这个指好像在winhex的hex代码中见过相似的,那就用Winhex新建一个文件之后把这串解出来的字符放进去看看是什么。对应的是555...原创 2020-05-17 15:37:50 · 452 阅读 · 0 评论 -
【学习笔记16】buu [SUCTF 2019]Pythonginx
打开一看发现给了一堆代码这样看不方便我们就去查看源码 @app.route('/getUrl', methods=['GET', 'POST'])def getUrl(): url = request.args.get("url") host = parse.urlparse(url).hostname if host == '...原创 2020-05-16 10:22:00 · 697 阅读 · 0 评论 -
【学习笔记15】buu [BUUCTF 2018]Online Tool
打开一看,发现给了一大串代码,接下来进行审计if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$_SERVER['REMOTE_ADDR']=$_SERVER['HTTP_X_FORWARDED_FOR'];} //首先看到前两行代码X_FORWARDED_FOR和REMOTE_ADDR这里是让服务器用来获取ip用...原创 2020-05-15 23:12:26 · 688 阅读 · 0 评论 -
【学习笔记14】buu [BJDCTF 2nd]old-hack
首先打开网站一看,映入眼球,thinkphp,但是不知道是什么版本的所以就想办法构造一个报错来让它显示一些更详细的信息http://59429912-fc6a-4d2d-945a-c1aabf47f19f.node3.buuoj.cn/?s=3这样就可以看到thinkphp的版本了是5.0.23版本接下来就简单了求助度娘,查找thinkphp5.0.23对应版本的漏洞最后在...原创 2020-05-14 14:33:11 · 367 阅读 · 0 评论 -
【学习笔记13】buu [2020年 网鼎杯 web] filejava
首先打开网站后就看到了一个明显的上传位置,任意传一个文件,显示上传成功,并且可以下载,用bp抓一下下载的流量包,显示可以看到可以读取下载文件的内容,那我们试试能不能读取其他文件,如/etc/passwd,可以读取,接下来就尝试读取配置文件WEB-INF/web.xml这里因为不知道配置文件的具体位置就用../来代替具体多少慢慢试,可以看到再其中显示的各个文件,以...原创 2020-05-13 21:13:50 · 538 阅读 · 1 评论 -
【学习笔记12】buu [De1CTF 2019]SSRF Me
打开后看到一堆代码,根本看不懂,不过还好题目上给出了源码的下载位置,并且提示flag is in ./flag.txt,那啥都都不说了,先把源码下载下来吧。#! /usr/bin/env python#encoding=utf-8from flask import Flaskfrom flask import requestimport socketimport hashl...原创 2020-05-12 16:38:06 · 403 阅读 · 0 评论 -
【学习笔记11】[2020年 网鼎杯 web] AreUSerialz
我唯一可以写出来的web题,所以身为菜鸡的我就过来更新一篇wp了打开一看一长串代码那就开始审计吧 <?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; protected $filename; protected $content;...原创 2020-05-10 17:41:23 · 229 阅读 · 0 评论 -
【学习笔记1】buu [GXYCTF2019]Ping Ping Ping
打开网站后,一眼就看到这样的提示,让你传个ip,传一下试试是什么,这里我们就用127.0.0.1试试发现这是这是ping了一下传的ip,那这就是经典的命令执行了,首先执行ls看看都有什么文件有flag.php,index.php两个,很明显flag就在flag.php里,首先所以可以尝试构造怕payload/?ip=127.0.0.1|cat flag.php不...原创 2020-05-09 22:59:58 · 385 阅读 · 0 评论