Tan's Blog.

Misc:Invisible flag

字数统计: 1.5k阅读时长: 5 min
2019/04/02 Share

1.Invisible flag

使用工具:

010editor

原理:

PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。
PNG定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是必需的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。虽然PNG文件规范没有要求PNG编译码器对可选数据块进行编码和译码,但规范提倡支持可选数据块。
IHDR,文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。文件头数据块由13字节组成:Width 4 bytes,,Height 4 bytes,Bit depth 1 byte,ColorType 1 byte,Compression method 1 byte,Filter method 1 byte,Interlace method 1 byte。
PLTE,调色板数据块PLTE(palette chunk)包含有与索引彩色图像(indexed-color image)相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块(image data chunk)之前。PLTE数据块是定义图像的调色板信息,PLTE可以包含1~256个调色板信息。
IDAT,图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,我们就可以很方便的生成PNG图像。
IEND,图像结束数据IEND(image trailer chunk):它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。

解题思路:

打开图片发现图片应该是缺失了一块,也就是说这张图片高度是被特别处理过的。打开推荐的010editor,把高度调节一下就可。载入图片,得到一堆16进制数,由PNG文件结构的分析可知,高度宽度信息是在文件头数据块IHDR中存储,各占4个字节。那就找到IHDR,定位高度,修改保存,GET!

SQL注入漏洞学习

SQL基础理论学习

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。
判断能否进行SQL注入,什么样的测试方法才是比较准确呢?答案如下:
http://www.19cn.com/showdetail.asp?id=49
http://www.19cn.com/showdetail.asp?id=49 and 1=1
http://www.19cn.com/showdetail.asp?id=49 and 1=2
这就是经典的1=1、1=2测试法了,怎么判断呢?看看上面三个网址返回的结果就知道了:
可以注入的表现:
① 正常显示(这是必然的,不然就是程序有错误了)
② 正常显示,内容基本与①相同
③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next)
不可以注入就比较容易判断了,①同样正常显示,②和③一般都会有程序定义的错误提示,或提示类型转换时出错。

sqlmap初步使用

sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此运行需要安装python环境。
初步学习几个命令,SQLMAP用于Access数据库注入:
(1) 猜解是否能注入
win: python sqlmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7"
Linux : .lmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7"
(2) 猜解表
win: python sqlmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –tables
Linux: .lmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –tables
(3) 根据猜解的表进行猜解表的字段(假如通过2得到了admin这个表)
win: python sqlmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –columns -T admin
Linux: .lmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –columns -T admin
(4) 根据字段猜解内容(假如通过3得到字段为username和password)
win: python sqlmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –dump -T admin -C “username,password”
Linux: .lmap.py -u “http://www.xxx.com/en/CompHonorBig.asp?id=7" –dump -T admin -C
“username,[url=]B[/url]password”

小结

今天只是初步进行学习,有些东西还是需要慢慢理解吧,路漫漫其修远兮,吾将上下而求索。

CATALOG
  1. 1. 1.Invisible flag
    1. 1.1. 使用工具:
    2. 1.2. 原理:
    3. 1.3. 解题思路:
  2. 2. SQL注入漏洞学习
    1. 2.1. SQL基础理论学习
    2. 2.2. sqlmap初步使用
    3. 2.3. 小结