sqlite3 aracının temel kullanımı aşağıdaki gibi incelenebilir.
sqlite3 -help
Veritabanı oluşturmak için veritabanı adının belirtilmesi yeterlidir. Bu veritabanında herhangi bir veri bulunmamaktadır.
sqlite3 YeniVeriTabani.db
.databases
.tables
Basit bir tablo oluşturma ve bu tabloya veri ekleme işlemi aşağıdaki gibidir.
create table Tablo1(id smallint primarykey, adi varchar(30), adresi text, resim BLOB);
insert into Tablo1 values(3,’Ahmet’,’Acibadem Istanbul’,readfile(‘/usr/share/backgrounds/gnome/Flowerbed.jpg’));
insert into Tablo1 values(26,’Berna’,’Kizilay Ankara’,readfile(‘/usr/share/sparta/images/screenshot-big.jpg’));
insert into Tablo1 values(8264,’Cihan’,’Bornova Izmir’,readfile(‘/usr/share/xsser/gtk/images/xsser.jpg’));
select * from Tablo1;
Tablo başlıklarının gösterilmesi veya gizlenmesi için “.header” komutu kullanılabilir.
.header on
select * from Tablo1;
.header off
select * from Tablo1;
Varsayılan ayıraç (|) farklı bir ayıraç da kullanılabilir.
.separator “#$”
select * from Tablo1;
Tablodaki değerler satır satır ekrana dökülebilir.
.mode line
select * from Tablo1;
Tablodaki değerler kolonlar halinde ekrana dökülebilir. Kolon başlıkları da eklenerek Excel görünümü de elde edilebilir.
.mode column
select * from Tablo1;
.header on
select * from Tablo1;
Temel işlemlerden sonra ilk veritabanı disk sistemine kaydedilebilir ve sqlite komut satırından çıkılabilir.
.save /root/Desktop/Sqlite/IlkVeritabani.db
.exit
Disk sisteminde kayıtlı olan bir veritabanı, sqlite3 aracına veritabanı dosyasının adı belirtilerek veya “.open” komutu ile veritabanı dosya adı verilerek açılabilir.
sqlite3 IlkVeritabani.db
.databases
.tables
.exitsqlite3
.open /root/Desktop/Sqlite/IlkVeritabani.db
.databases
.tables
Veritabanı içerisindeki bir veri (dosya) dışarıya aktarılabilir.
select writefile(‘/root/Desktop/Sqlite/YeniResim.jpg’,resim) FROM Tablo1 WHERE id=26;
Sızma testlerinde en çok kullanılan adımlardan birisi de CSV dosyalarını içeriye veya dışarıya aktarmadır. Hazırlanan bir CSV dosyası CSV moduna gelinerek veritabanındaki bir tabloya atılabilir.
.mode csv
.import /root/Desktop/NessusCiktisi.csv Tablo2
.tables
Böylece CSV içeriği veritabanına aktarılmış olur.
Veritabanı yapısı tablo ve kolon bazlı incelenebilir.
.schema
.schema Tablo1
Bu tablo içerisinde sorgulama gerçekleştirilebilir.
select “Plugin ID”, Name, Port, Risk From Tablo2 where port=80 and (Risk=”High” or Risk=”Medium”);
Veritabanında çalıştırılan bir komutun çıktısını CSV formatında dışarıya aktarım da gerçekleştirilebilir. Bunun için öncelikle CSV formatı ayarlanır, sonrasında ise dışarıya çıkarılması istenen sonuca ait sorgu yazılır.
.header on
.mode csv
.once /root/Desktop/Sqlite/VeriTabaniCiktisi.csv
select * from Tablo1;ls VeriTabaniCiktisi.csv
cat VeriTabaniCiktisi.csv
sqlite3 komut çıktıları işletim sistemindeki kabuk komutları ile de kullanılabilir.
sqlite3 IlkVeritabani.db ‘select “Plugin ID”, CVSS, Risk, Host, Protocol, Port, Name from Tablo2 where Risk=”High” or Risk=”Medium”;’ | grep Apache
Kaynak:
https://sqlite.org/cli.html
https://localhost.exposed/2016/02/14/vlog-path-to-oscp-part-1
https://www.sitepoint.com/getting-started-sqlite3-basic-commands/